2013-02-28 99 views
1

我有一个关于在Java集合框架中使用泛型类型的问题。Java集合框架中的泛型类型和方法声明

下面是从Oracle的Java集合线程所采取的Set接口的片段(发现here):

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,为什么是containsremove方法声明为Object类型的参数? add方法需要E类型的参数,为什么不要containsremove也这样做?

回答

-1

这只是因为向前兼容的时间通用之前添加到Java。

这种旧的代码仍然有效。

+0

谢谢史密斯先生42。你有没有一个向后兼容的例子?很高兴看到它在行动中。 – 2013-03-01 19:53:05