我有一个关于在 Java Collections 框架中使用泛型类型的问题。
Set
这是取自 Oracle 的 Java 集合线程(在此处找到)的接口片段:
public interface Set<E> extends Collection<E> {
// Basic operations
int size();
boolean isEmpty();
boolean contains(Object element);
// optional
boolean add(E element);
// optional
boolean remove(Object element);
...
我的问题是:鉴于它Set<E>
是具有泛型类型参数的泛型E
,为什么contains
andremove
方法声明为采用类型参数Object
?该add
方法接受 type 的参数E
,为什么不这样contains
做remove
呢?