Является ли тело класса enum константным для определенного класса статическим или нестатичным?

У меня есть класс типа enum:

public enum Operation {
    PLUS() {
        @Override
        double apply(double x, double y) {       
            // ERROR: Cannot make a static reference
            // to the non-static method printMe()...
            printMe(x);
            return x + y;
        }
    };

    private void printMe(double val) {
        System.out.println("val = " + val);
    }

    abstract double apply(double x, double y);
}

Как вы видите выше, я определил одинenum тип, который имеет значениеPLUS, Он содержит константно-специфическое тело. В свое тело я попытался позвонитьprintMe(val);, но я получил ошибку компиляции:

Невозможно сделать статическую ссылку на нестатический метод printMe ().

Почему я получаю эту ошибку? Я имею в виду, я переопределяю абстрактный метод вPLUS тело. Почему это вstatic объем? Как от этого избавиться?

Я знаю добавлениеstatic ключевое слово наprintMe(){...} решает проблему, но мне интересно знать, есть ли другой способ, если я хочу сохранитьprintMe() нестатическая?

Другая проблема, очень похожая на описанную выше, но на этот раз сообщение об ошибке звучит наоборот, т.е.PLUS(){...} имеет нестатический контекст:

public enum Operation {
    PLUS() {
        // ERROR: the field "name" can not be declared static
        // in a non-static inner type.
        protected static String name = "someone";

        @Override
        double apply(double x, double y) {
            return x + y;
        }
    };

    abstract double apply(double x, double y);
}

Я пытаюсь объявитьPLUS-конкретныйstatic переменная, но я получаю ошибку:

поле "имя" не может быть объявлено статическим в нестатическом внутреннем типе.

Почему я не могу определить статическую константу внутриPLUS еслиPLUS такое анонимный класс? Два сообщения об ошибках звучат противоречиво, как говорится в 1-м сообщении об ошибкеPLUS(){...} имеетстатический контекст в то время как второе сообщение об ошибке говоритPLUS(){...} имеетнестатическая контекст. Я еще больше запутался.

Ответы на вопрос(8)

Ваш ответ на вопрос