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 BigDecimalque compareTopode 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çãoBigDecimalem profundidade, sugiro que você ignore esse método.