Итак, у меня есть мой enum
public enum Sample {
ValueA{
@Override
public String getValue(){ return "A"; }
},
ValueB{
@Override
public String getValue(){ return "B"; }
public void doSomething(){ }
};
abstract public String getValue();
};
и у меня есть другой код, пытающийся использовать перечисление.
Sample.ValueB.doSomething();
Кажется, что он должен быть действительным, но выдает ошибку «Метод doSomething () не определен для типа Sample». В отличие от
Sample value = Sample.ValueB;
value.doSomething();
, которая выдает ту же ошибку и кажется разумной.
Я предполагаю, что есть разумный ответ относительно того, почему первый не работает, и это относится к двум примерам, эквивалентным под капотом. Я надеялся, что кто-то может указать мне на документацию о том, почему это так.