2012-07-24 28 views

回答

0

添加和刪除方法都從Collection接口繼承。這種刪除方法沒有用一般的論證加以改進,可能是因爲它沒有關係。刪除不會影響集合的類型安全性,當您更改地球上最流行的API之一時,更少的更改就更好。你會發現包含方法也遭受同樣的命運。

+0

「因爲它沒關係」它*確實*重要。不同類型的對象可以相等。 – newacct 2012-07-24 18:34:32

+0

它不值得考慮,因爲不同類型的對象永遠不會被添加到參數化集合中,因此要求remove參數化方法不會帶來任何收益。 – 2012-07-24 19:54:45

+0

我沒有對添加到集合中的東西進行任何說明。只是'remove()'方法的定義要求它移除與傳遞的東西相等的東西 – newacct 2012-07-24 22:41:34

0

因爲調用者可以使用任何類型的對象調用removecontains,代碼仍然可以正常工作。集合類型參數使用的編譯時契約保證* 中的任何內容集合將是給定類型的。它不關心你是否問它是否包含不同類型的對象。我知道Java泛型實際上不是保證。我猜想更多的語法糖。

1

這是因爲使用equals()方法和equals()方法接受一個對象作爲參數不是通用去除平等操作檢查。