我有一个关于在 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,为什么containsandremove方法声明为采用类型参数Object?该add方法接受 type 的参数E,为什么不这样contains做remove呢?