¿Cómo usar los campos en Java Enum anulando el método? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Por qué las implementaciones enum no pueden acceder a campos privados en la clase enum? 4 respuestasLa tarea es implementar un hermoso patrón de diseño de estrategia con Javaenum
:
public enum MyEnum {
FIRST {
@Override
public String doIt() {
return "1: " + someField; //error
}
},
SECOND {
@Override
public String doIt() {
return "2: " + someField; //error
}
};
private String someField;
public abstract String doIt();
}
pero cuando se refiere asomeField
yo obtengo
No se puede hacer una referencia estática al campo no estático someField.
¿Qué está mal y es posible hacerlo mejor?