Was sind nicht zwei lange Variablen, die mit dem Operator == in Java zu vergleichen sind?
Beim Vergleich von 2 Long-Variablen ist ein sehr seltsames Problem aufgetreten. Sie zeigen immer "false" an. Durch das Debuggen in Eclipse kann sichergestellt werden, dass sie denselben Zahlenwert haben:
if (user.getId() == admin.getId()) {
return true; // Always enter here
} else {
return false;
}
Die beiden obigen 2 Rückgabewerte sind vom Objekttyp Long, was mich verwirrte. Und um zu überprüfen, ob ich eine Hauptmethode wie diese geschrieben habe:
Long id1 = 123L;
Long id2 = 123L;
System.out.println(id1 == id2);
Es druckt wahr.
Kann mir jemand Ideen geben? Ich arbeite seit 3 Jahren in der Java-Entwicklung, kann diesen Fall aber nicht erklären.