“Itérable<Element> ne peut pas être jeté à la Liste<Element>” - ce N'est pas de "Liste" un type " d'objet iterable`?

J'ai appelé un getElements méthode qui renvoie la Iterable<Element>.

Je l'ai fait:

List<Element> elements = (List<Element>) getElements();

Cela génère l'erreur:

java.lang.ClassCastException: com.utesy.Element$3 
cannot be cast to java.util.List

J'ai pensé à une List était un type de Iterable?

poste le code de getElements(); méthode
Le List interface étend la Iterable interface - si oui, List est de type Iterable, comme vous le dites. Mais cela ne signifie pas que, quelle que soit Iterable est retourné par getElements est aussi un List. Toutes les Listes sont Iterables, mais pas tous Iterables sont des Listes.

OriginalL'auteur snoopy | 2010-10-18