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!