¿Quién tiene razón? Eclipse o javac?Error en el compilador de eclipse o javac?
--------------- c/v/A.java ---------------
package c.v;
public class A<T> {
}
- ------------- c/v/B.java ---------------
package c.v;
public class B extends A<B.Secret> {
private class Secret {};
}
Eclipse compila B.java bien.
Javac tiene un problema.
$ javac c/v/B.java c/v/B.java:3: c.v.B.Secret has private access in c.v.B public class B extends A<B.Secret> { ^ 1 error
Creo que esta respuesta es correcta, aunque la restricción al cuerpo de la clase de nivel superior por el JLS es tonta. Acceda OUGHT para extender a la declaración de clase (y específicamente a los parámetros de tipo) de la clase de nivel superior. – Eric