我,當我試圖比較2個長變量一個很奇怪的問題,他們總是表現出假的,我可以肯定他們在Eclipse的調試相同數量的值:什麼不是2長變量與==運算符相等以在Java中進行比較?
if (user.getId() == admin.getId()) {
return true; // Always enter here
} else {
return false;
}
兩個以上2返回值是對象類型Long,這讓我困惑。並驗證我寫了這樣的主要方法:
Long id1 = 123L;
Long id2 = 123L;
System.out.println(id1 == id2);
它打印爲真。
那麼有人可以給我一些想法嗎?我一直在Java開發工作3年,但無法解釋這種情況。
這取決於龍的大小。較小的長整數和整數是插入的,並且是真正相同的對象,但較長的不是,對於這些,您將需要使用'.equals(...)'或unbox它們。 –