J'implémente l'interface List dans une classe qui stocke des données dans un tableau de type <T>
. Cela soulève des problèmes avec les méthodes qui prennent Collection en tant que paramètres, puisque la collection stocke ses objets sous Object
. Comment puis-je transformer Object
en T
? La coulée simple ne fonctionne pas.Coulée d'objets à <T> -type
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;
}
}
}
}
Je suis en train:
public boolean addAll(Collection<? extends T> c)
mais il échoue avec:
public boolean retainAll(Collection<?> c)
depuis que je ne peux pas changer le type de collection ici:/
public boolean retainAll(Collection<?> c){
boolean result = false;
for(T t : c){
}
return result;
}
Comment vous implémentez 'retainAll (Coll ...)'? –
édité avec l'implémentation – mastodon