30Fermer32
Pen^2Le 23/05/2006 à 17:05
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 hehe