Java集合框架中的泛型类型和方法声明

Java集合框架中的泛型类型和方法声明,java,generics,collections,parameters,set,Java,Generics,Collections,Parameters,Set,我有一个关于Java集合框架中泛型类型使用的问题 下面是从Oracle的Java Collections线程中获取的Set接口的一个片段: 我的问题是:既然集合是带有泛型类型参数E的泛型集合,为什么要声明contains和remove方法来获取Object类型的参数?add方法接受类型为E的参数,为什么contains和remove不执行相同的操作?这仅仅是因为向后兼容到将generic添加到java之前的时间 这样,旧代码仍然有效。谢谢,史密斯先生。你们有一个向后兼容的例子吗?很高兴看到它在起

我有一个关于Java集合框架中泛型类型使用的问题

下面是从Oracle的Java Collections线程中获取的Set接口的一个片段:


我的问题是:既然集合是带有泛型类型参数E的泛型集合,为什么要声明contains和remove方法来获取Object类型的参数?add方法接受类型为E的参数,为什么contains和remove不执行相同的操作?

这仅仅是因为向后兼容到将generic添加到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);
    ...