Betrachten Sie die einfache Testklasse:
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");
}
}
Sie können (bewusst) sagen, dass dies x
gleich ist y
(keine Objektreferenz), aber wenn Sie das Programm ausführen, zeigt das folgende Ergebnis:
false
true
Frage: Was ist der Unterschied zwischen compareTo()
und equals()
in BigDecimal
dem compareTo
kann feststellen , dass x
gleich y
?
PS: Ich sehe, dass BigDecimal eine inflate()
Methode für eine equals()
Methode hat. Was macht inflate()
eigentlich?
inflate()
: Es ist nicht Teil der öffentlichen API, da es nur die interne Darstellung manipuliert und keine sichtbaren Auswirkungen nach außen hat. Wenn Sie sich also nichtBigDecimal
eingehend mit der Implementierung von befassen möchten, empfehlen wir Ihnen, diese Methode zu ignorieren.