Considere a classe de teste simples:
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
Você pode (conscientemente) dizer que x
é igual a y
(não referência a objeto), mas quando você executa o programa, o seguinte resultado mostra:
false
true
Pergunta: Qual é a diferença entre compareTo()
e equals()
em BigDecimal
que compareTo
pode determinar que x
é igual a y
?
PS: Vejo que o BigDecimal tem um inflate()
método no equals()
método O que inflate()
faz realmente?
inflate()
: não faz parte da API pública porque manipula apenas a representação interna e não tem efeito visível para o "exterior". Portanto, a menos que você queira realmente estudar a implementaçãoBigDecimal
em profundidade, sugiro que você ignore esse método.