smeet : oui, mais ça ne résout pas tous les problèmes :
class ClassA<E>
implements iterable<a<E>>
{
public ClassA(..)
{
ll= new LinkedList<ClassA<E>>() ;
}
public iterator<ClassA<E>> iterator()
{
return ll.iterator() ;
}
LinkedList<ClassA<E>> ll ;
}
class ClassAInteger
extends ClassA<Integer>
{
public ClassAInteger(..) { super() } ;
}
Et maintenant :
ClassAInteger cai= new ClassAInteger() ;
cai.iterator() => renvoit un Iterator<ClassA<Integer>>, pas un Iterator<ClassAInteger>
du coup tu ne peux pas faire un
for ( ClassAInteger elt : cai )
System.out.println(elt.toString() )
tu es obligé de faire un
for ( ClassA<Integer> elt : cai )
System.out.println(elt.toString() )
naturellement j'aimerais me tromper, ça m'arrangerait