Невозможно создать статическую ссылку на нестатическое поле memberVariable с частной переменной

я создал перечисление с одной частной переменной-членом. Когда я пытаюсь получить доступ к переменной-члену, компиляция сообщает: «Невозможно создать статическую ссылку на нестатическое поле 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);

}
19
задан Andreas 9 December 2011 в 08:28
поделиться