Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Double ou double no @Override

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));
    }
1 resposta
solução!

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!