Tengo un problema al compilar una clase genérica con una clase interna. La clase extiende una clase genérica, la clase interna también.Error de compilación en la herencia de la clase interna genérica que se extiende con los límites
Aquí la interfaz implementada:
public interface IndexIterator<Element>
extends Iterator<Element>
{
...
}
El super clase genérica:
public abstract class CompoundCollection<Element, Part extends Collection<Element>>
implements Collection<Element>
{
...
protected class CompoundIterator<Iter extends Iterator<Element>>
implements Iterator<Element>
{
...
}
}
La subclase genérico con el error del compilador:
public class CompoundList<Element>
extends CompoundCollection<Element, List<Element>>
implements List<Element>
{
...
private class CompoundIndexIterator
extends CompoundIterator<IndexIterator<Element>>
implements IndexIterator<Element>
{
...
}
}
El error es:
type parameter diergo.collect.IndexIterator<Element> is not within its bound
extends CompoundIterator<IndexIterator<Element>>
^
¿Qué pasa? El código se compila con eclipse, pero no con el compilador java 5 (utilizo hormiga con java 5 en mac y eclipse 3.5). No, no puedo convertirlo a una clase interna estática.
¿Alguna posibilidad de probar con Java 6?Puede ser un error del compilador. –
Acabo de probarlo con Java 6. El mismo mensaje de error. Interesante ... –
@mmyers: buena idea @Eval: gracias, también me probé en el Mac 1.6 jdk - mismo error –