J'ai un problème lors de la compilation d'une classe générique avec une classe interne. La classe étend une classe générique, la classe interne aussi.Erreur de compilation sur l'héritage de classe interne générique s'étendant avec des limites
Voici l'interface implémentée:
public interface IndexIterator<Element>
extends Iterator<Element>
{
...
}
Le super classe générique:
public abstract class CompoundCollection<Element, Part extends Collection<Element>>
implements Collection<Element>
{
...
protected class CompoundIterator<Iter extends Iterator<Element>>
implements Iterator<Element>
{
...
}
}
La sous-classe générique avec l'erreur du compilateur:
public class CompoundList<Element>
extends CompoundCollection<Element, List<Element>>
implements List<Element>
{
...
private class CompoundIndexIterator
extends CompoundIterator<IndexIterator<Element>>
implements IndexIterator<Element>
{
...
}
}
L'erreur est:
type parameter diergo.collect.IndexIterator<Element> is not within its bound
extends CompoundIterator<IndexIterator<Element>>
^
Qu'est-ce qui ne va pas? Le code compile avec eclipse, mais pas avec le compilateur java 5 (j'utilise ant avec java 5 sur un mac et eclipse 3.5). Non, je ne peux pas le convertir en classe interne statique.
Avez-vous une chance de l'essayer avec Java 6?Ce pourrait être un bug du compilateur. –
Juste essayé avec Java 6. Même message d'erreur. Intéressant ... –
@mmyers: bonne idée @Eval: merci, aussi essayé moi-même sur le mac 1.6 jdk - même erreur –