3 回答

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
Java總是調(diào)用最適合您的參數(shù)的方法。僅當(dāng)沒有可以在沒有強(qiáng)制/自動裝箱的情況下調(diào)用的方法時(shí),才會執(zhí)行自動裝箱和隱式向上轉(zhuǎn)換。
List接口指定了兩個(gè)remove方法(請注意參數(shù)的命名):
remove(Object o)
remove(int index)
這意味著list.remove(1)
刪除位置1處的對象并remove(new Integer(1))
從此列表中刪除指定元素的第一個(gè)匹配項(xiàng)。

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以使用鑄造
list.remove((int) n);
和
list.remove((Integer) n);
如果n是int或Integer并不重要,該方法將始終調(diào)用您期望的那個(gè)。
使用(Integer) n
或Integer.valueOf(n)
比new Integer(n)
前兩個(gè)更有效可以使用Integer緩存,而后者將始終創(chuàng)建一個(gè)對象。

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
我不知道'正確'的方式,但你建議的方式工作得很好:
list.remove(int_parameter);
刪除給定位置的元素和
list.remove(Integer_parameter);
從列表中刪除給定的對象。
這是因?yàn)閂M首先嘗試查找使用完全相同的參數(shù)類型聲明的方法,然后才嘗試自動裝箱。
添加回答
舉報(bào)