Considera la semplice classe di test:
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");
}
}
Puoi (consapevolmente) dire che x
è uguale a y
(non riferimento all'oggetto), ma quando esegui il programma, il seguente risultato mostra:
false
true
Domanda: Qual è la differenza tra compareTo()
e equals()
in BigDecimal
ciò che compareTo
può determinare che x
è uguale a y
?
PS: Vedo che BigDecimal ha un inflate()
metodo sul equals()
metodo. Cosa fa inflate()
effettivamente?
inflate()
: non fa parte dell'API pubblica perché manipola solo la rappresentazione interna e non ha effetti visibili all'esterno. Quindi, a meno che tu non voglia davvero studiare l'implementazioneBigDecimal
approfondita, ti suggerirei di ignorare questo metodo.