Чем не равны 2 длинные переменные с оператором == для сравнения в Java?
У меня возникла очень странная проблема, когда я пытаюсь сравнить 2 длинные переменные, они всегда показывают 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);
Это печатает правда.
Так может кто-нибудь дать мне идеи? Я работаю в Java Development 3 года, но не могу объяснить этот случай.