我有一个关于在Java集合框架中使用泛型类型的问题。
下面是取自Oracle的Java Collections线程(可找到here)的Set接口的一段代码:
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和remove方法接受Object类型的参数?add方法接受E类型的参数,为什么contains和remove不做同样的事情呢?
发布于 2013-03-01 04:07:37
这仅仅是因为向后兼容到java中添加generic之前的时间。
通过这种方式,旧代码仍然可以工作。
https://stackoverflow.com/questions/15144611
复制相似问题