1

我有一个关于在 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,为什么不这样containsremove呢?

4

1 回答 1

-1

这仅仅是因为在将泛型添加到 java 之前的时间向后兼容。

这样旧代码仍然有效。

于 2013-02-28T20:07:36.713 回答