``` 包裝類型間的相等判斷應該用equals,而不是'!=' Inspection info: 所有的包裝類對象之間值的比較,全部使用equals方法比較。 說明:對於Integer var=?在-128至127之間的賦值,Integer對象是在IntegerCache.cache產生,會復用已有... ...
包裝類型間的相等判斷應該用equals,而不是'!='
Inspection info:
所有的包裝類對象之間值的比較,全部使用equals方法比較。
說明:對於Integer var=?在-128至127之間的賦值,Integer對象是在IntegerCache.cache產生,會復用已有對象,
這個區間內的Integer值可以直接使用==進行判斷,但是這個區間之外的所有數據,都會在堆上產生,並不會復用已有對象,
這是一個大坑,推薦使用equals方法進行判斷。
Integer a = 235;
Integer b = 235;
if (a.equals(b)) {
// code
}