出于一些奇怪的原因,我想从Java Util实现一个Collection并使用一般类型的一切,包括remove和contains,为了向后兼容的原因,他们根本没有这样做,所以我想尝试我。这是我想要的代码:
public class MyTest<E> implements Collection<E>{
@Override
public <T> boolean remove(T t){
return true;
}
@Override
public <T> boolean contains(T t){
return true;
}
}
随着我的研究的进行,我明白这段代码最终会像remove(Object) of type Collection<E>
那样删除
但java似乎只是不接受它而是继续要求用Object作为参数覆盖该方法。所以我问是否有人知道无论如何要解决它或直接用这个
答案 0 :(得分:3)
你不能像在Java中那样实现Collection
,参数不能使用协方差或重新定义,Collection
定义这两种方法:
boolean remove(Object o);
boolean contains(Object o);
如果要实现Collection
接口,则应该实现这些方法:
public class MyTest<E> implements Collection<E>{
...
@Override
public boolean remove(Object o){
. . .
}
@Override
public boolean contains(Object o){
. . .
}
...
}