雖然這已經在包括SO
在內的各種論壇中詳細討論過,並且我已閱讀了大部分專家的回覆,但下面的問題是令人困惑的我。爲什麼int不能與null比較,但Integer可以與null比較
我有幾個integer
變量,我的要求是在執行少量語句前檢查null
。所以首先我宣佈爲int (I don't have knowledge on int and Integer)
。
int a,b,c;
if(a == null) {
//code here
}
但是編譯器不允許我這樣聲明。
在谷歌搜索後,專家建議我使用Integer
,而不是int
當我變了樣下面的代碼
Integer a,b,c;
if(a == null) {
//code here
}
這是罰款與編譯器爲Integer
被定義爲在Java Object
和int
是不。
現在我的代碼已經成爲一些聲明int
和一些Integer
。
任何人都可以提出,如果聲明Integer
可以得到同樣的結果int
也可以更改我的所有聲明到Integer
。
謝謝你的時間。
感謝@Edwin Buck的回覆...我在與變量進行比較時沒有任何問題,但是我的應用程序有一些功能迫使我與null比較......您能否使用'Integer'來指導我而不是'int'或者是否有任何問題。 – Siva
處理必須採用Object的項目時,使用Integer非常重要。例如,你可以有一個ArrayList但你不能有一個ArrayList ;因爲int不能轉換爲Object,所以'add(T item)'方法無法實現。 (因爲'int'不是'Object'的子類,而'Integer'是)。這些天自動裝箱隱藏大部分這些區別,但偶爾瞭解差異仍然很重要。 –
如果我不處理對象..我還可以採取'整數'?用於存儲值並將這些值用於運算操作?感謝您的持續幫助 – Siva