У меня возникла очень странная проблема, когда я пытаюсь сравнить две длинные переменные, они всегда показывают false, и я уверен, что они имеют одинаковое числовое значение, отлаживая в Eclipse:
if (user.getId() == admin.getId()) {
return true; // Always enter here
} else {
return false;
}
Оба из двух возвращаемых значений являются объектными типами Long, которые меня смутили. И чтобы убедиться, что я написал основной метод следующим образом:
Long id1 = 123L;
Long id2 = 123L;
System.out.println(id1 == id2);
Он печатает true.
Так может кто-нибудь дать мне идеи?. Я работаю в Java Development в течение 3 лет, но не могу объяснить этот случай.