Qual o motivo de o override usar o Double ('D' com caixa alta) ao invés do double?
@Override
public int compareTo(Compra outraCompra) {
return Double.valueOf(this.valor).compareTo(Double.valueOf(outraCompra.valor));
}
Qual o motivo de o override usar o Double ('D' com caixa alta) ao invés do double?
@Override
public int compareTo(Compra outraCompra) {
return Double.valueOf(this.valor).compareTo(Double.valueOf(outraCompra.valor));
}
Olá, Andre!
A diferença entre Double
e double
no contexto do @Override
está relacionada ao fato de que o método compareTo
da interface Comparable
espera receber um objeto do tipo Double
, que é a versão de classe do tipo primitivo double
.
No trecho de código que você compartilhou, o método compareTo
está sendo implementado na classe Compra
, que implementa a interface Comparable<Compra>
. O objetivo desse método é definir a regra de comparação entre duas instâncias da classe Compra
.
No caso específico desse método, ele está comparando o valor da compra atual (this.valor
) com o valor de outra compra (outraCompra.valor
). Como o valor é do tipo primitivo double
, é necessário converter esse valor para um objeto do tipo Double
para que seja possível utilizar o método compareTo
da classe Double
.
Portanto, é necessário usar Double.valueOf(this.valor)
e Double.valueOf(outraCompra.valor)
para realizar a comparação corretamente.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!
Espero ter ajudado e bons estudos!