Я реализую интерфейс List для класса, который хранит данные в массиве типа <T>. Это вызывает проблемы с методами, которые принимают коллекцию в качестве параметров, поскольку коллекция хранит свои объекты как 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...)? - person Adeel Ansari   schedule 08.11.2010