IDEA 解決Number objects are compared using '==', not 'equals()' 警告


當代碼被工具標黃色高亮時,代表需要優化或重構了

 

== 是值相等。對於Integer這樣的數據類型而言,意義是兩個Integer對象的內存地址相等。也就是說如果你有兩個不同的Integer的對象,

如果是兩個數字對象用==比較,比較的是對象地址(是否同一個對象,而不是”數值“)

哪怕他們的值一樣,用==判斷也是不相等的。


如果是基本類型int,用equals也是可以的。因為編譯器會自動把int裝箱為Integer。

Integer a = new Integer(10);
Integer b = new Integer(10);
System.out.println(a.equals(b)); ===> TRUE
System.out.println(a == b); ===> FALSE

結論,Integer對象盡量使用equals,避免報警告


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM