我正在将List接口实现到一个类中,该类将数据存储在类型的数组中。这会导致使用以Collection为参数的方法时出现问题,因为collection将其对象存储为Object。如何将Object转换为T?简单的强制转换是行不通的。
class MyCollection<T> implements List<T>{
T[] tab;
MyCollection() {
this.tab = (T[])new Object[10];
}
public boolean addAll(Collection c){
for(Object o : c){
o = (T)o;
for(int i = 0; i < tab.length; i++){
tab[i] = o;
}
}
}
}
我正在尝试:
public boolean addAll(Collection<? extends T> c)
但是它会出现以下错误:
public boolean retainAll(Collection<?> c)
因为我无法在此更改集合类型 :/
public boolean retainAll(Collection<?> c){
boolean result = false;
for(T t : c){
}
return result;
}
retainAll(Coll...)
的? - Adeel Ansari