物件包裝器類之間的比較用equals()而不是==

weixin_34148340發表於2017-06-15

所有的基本型別都有一個與之對應的類。如基本型別int的對應為Integer.
通常這些類稱為包裝器(wrapper)。這些物件包裝器類有很鮮明的名字:Integer、Long、Folat、Double、Short、 Byte、 Character 、Void、 Boolean。前面六個派生於公共的父類Number。物件包裝器類一旦構造了包裝器,就不允許更改包裝在其中的值。同時由於物件包裝器類是final的,所以沒有子類。
當我們設定型別引數不允許是基本型別時,我們就可以用物件包裝器類來代替。比如 ArrayList<int>是錯的,但可以ArrayList<Integer>。

對於物件包裝器類之間的比較,最好是呼叫equals方法。而不是==,雖然==是可以應用於物件包裝器物件 ,但是檢測的是物件是否指向同一個儲存區域,而不是內部值是否一致。

相關文章