Итак, у меня есть 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() - undefined для типа Sample". В отличие от
Sample value = Sample.ValueB;
value.doSomething();
который производит ту же ошибку и представляется разумным.
Я предполагаю, что есть разумный ответ о том, почему первый не работает, и он относится к двум примерам, эквивалентным под капотом. Я надеялся, что кто-то может указать мне на документацию о том, почему именно так.