這將是一個簡單的問題(或者至少我認爲)。我必須將一個Long對象與一個長基元進行比較。兩個多頭之間的比較不能按預期工作
我的代碼簡化:
long primitiveLong = 285825645621;
Long objectLong = new Long(285825645621);
if(primitiveLong == objectLong.longValue()){
System.out.print("They are equals");
}
我預計它會工作,但事與願違,有人可以解釋我爲什麼?
在此先感謝。
編輯
好吧,我用明確的數字做了一個錯誤,我把我在這裏的代碼:
long identifier = mMarkers.get(marker);
long currentId = item.getId().longValue();
if (currentId==identifier)
System.out.print("They are equals");
在調試
編輯2
這是一個在調試模式下的IDE(Android Studio)的bug,我試過在另一個IDE上,它使用相同的代碼很好。所以感謝大家的答案,但問題是另一個,我不能指望。
如果該代碼已進入if循環或無或者我們應該猜測一下你認爲應該發生的事情:) – CKing
@ChetanKinger代碼應該在if語句中輸入 –
它不會編譯,對於編譯在數字的末尾添加L,那麼這個代碼應該工作原因是@ChetanKinger'if'不是一個循環,而是一個聲明;) –