Como usar campos no java enum, substituindo o método? [duplicado]
Esta pergunta já tem uma resposta aqui:
Por que as implementações enum não podem acessar campos particulares na classe enum 4 respostasA tarefa é implementar um belo padrão de design de estratégia com o 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();
}
mas quando se refere asomeField
eu recebo
Não é possível fazer uma referência estática para o campo não estático someField.
O que está errado e é possível fazer isso melhor?