Java集合。 add(E obj),但删除(Object obj)

时间:2011-12-04 06:52:54

标签: java collections method-signature

  

可能重复:
  Why aren't Java Collections remove methods generic?

我对集合中声明的java函数的签名有疑问。 问题是:为什么add的签名涉及 E (我们的类型),但remove有参数对象?

我在WWW看到过这个问题的一个回应,但我不确定是什么原因

  

“在删除中我们只需要1个操作:equals和Object提供它”

似乎是合理的。

1 个答案:

答案 0 :(得分:1)

我认为这是从通用前的日子开始的。 addremove方法都用于获取Object参数。引入泛型时,有充分的理由更改add方法,但确实没有任何理由改变remove方法(因为您引用的原因允许它保持原样)

我的猜测是,如果它是从今天开始设计的,Collection.remove将采用泛型参数,而不是匿名对象。