我对集合中声明的java函数的签名有疑问。
问题是:为什么add
的签名涉及 E (我们的类型),但remove
有参数对象?
我在WWW看到过这个问题的一个回应,但我不确定是什么原因
“在删除中我们只需要1个操作:equals和Object提供它”
似乎是合理的。
答案 0 :(得分:1)
我认为这是从通用前的日子开始的。 add
和remove
方法都用于获取Object
参数。引入泛型时,有充分的理由更改add
方法,但确实没有任何理由改变remove
方法(因为您引用的原因允许它保持原样)
我的猜测是,如果它是从今天开始设计的,Collection.remove
将采用泛型参数,而不是匿名对象。