я создал перечисление с одной частной переменной-членом. Когда я пытаюсь получить доступ к переменной-члену, компиляция сообщает: «Невозможно создать статическую ссылку на нестатическое поле memberVariable».
Если переменная не является частной (например, защищенной или защищенной пакетом), она компилируется нормально. Я не понимаю, какое отношение имеет объем переменной к типу (статический, нестатический) реализованной абстрактной функции.
Может ли кто-нибудь просветить меня?
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);
}