J'ai un tas d'interfaces génériques et des classesPourquoi cette pile d'interface générique ne fonctionne-t-elle pas?
public interface IElement {
// omited
}
class Element implements IElement {
// omited
}
public interface IElementList<E extends IElement> extends Iterable {
public Iterator<E> iterator();
}
class ElementList implements IElementList<Element> {
public Iterator<Element> iterator() {
// omited
}
}
public interface IElementListGroup<E extends IElementList<? extends IElement>> {
public E getChosenElementList();
}
class ElementListGroup implements IElementListGroup<ElementList> {
public ElementList getChosenElementList() {
// omited
}
}
Et puis un simple code
ElementListGroup group;
for(Element e : group.getChosenElementList())
{
// omited
}
Et la ligne avec pour mot-clé throwe un « ne peut pas convertir type d'élément objet à l'élément » erreur du compilateur .
Merci d'avance.
Je suis surpris que le compilateur ne mord pas la tête de l'OP au large sur l'utilisation d'un type brut. Ou peut-être que le PO a l'habitude d'ignorer les avertissements, auquel cas ils méritent ce qu'ils obtiennent. :-P –
Il y a plus d'avertissements rawtype dans le javac JDK7. –