Creé una enumeración con una variable de miembro privada. Cuando intento acceder a la variable miembro, la compilación indica 'No se puede hacer una referencia estática al campo no estático memberVariable'.No se puede hacer una referencia estática al miembro de campo no estático Variable con la variable privada
Si la variable no es privada (por ejemplo protegida o protegida por paquete) compila bien. No entiendo qué tiene que ver el alcance de la variable con el tipo (estático, no estático) de la función abstracta implementada.
¿Alguien me puede aclarar?
public enum EnumWithAbstractMethodAndMembers {
TheOneAndOnly(1) {
@Override
public int addValue(final int value) {
return memberVariable + value;
}
};
private final int memberVariable;
private EnumWithAbstractMethodAndMembers(final int memberVariable) {
this.memberVariable = memberVariable;
}
abstract int addValue(int value);
}
de sonido razonable. ¡Gracias por la respuesta y la pista con 'super'! – Andreas
Lo he registrado como un error 'javac'. –
Dicen que debería ser visible en un par de días. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7119746 Noté que Oracle acepta mis errores ** mucho ** más rápido que Sun. –