ich ein sehr seltsames Problem bekam, wenn ich versuche 2 Lange Variablen zu vergleichen, zeigen sie immer falsch und ich kann sicherstellen, dass sie die gleiche Anzahl Wert durch das Debuggen in Eclipse haben sein:Was sind nicht 2 Long-Variablen gleich mit == Operator in Java zu vergleichen?
if (user.getId() == admin.getId()) {
return true; // Always enter here
} else {
return false;
}
beide über 2 Rückgabewerte sind Objekttyp Long, die mich verwirrt haben. Und um zu überprüfen, dass ich eine Hauptmethode wie folgt geschrieben habe:
Long id1 = 123L;
Long id2 = 123L;
System.out.println(id1 == id2);
Es druckt wahr.
So kann mir jemand Ideen geben ?. Ich arbeite seit 3 Jahren in Java Development, kann diesen Fall aber nicht erklären.
Es hängt von der Größe des Long ab. Kleinere Longs und Integer werden beigefügt und sind wirklich identische Objekte, aber längere nicht, und für diese müssen Sie '.equals (...)' verwenden oder sie auspacken. –