
enum нельзя делать внутренним классом в не статическом внутреннем классе.
class MyClass {
enum Size { SMALL, MEDIUM, LARGE }
// enum не может быть локальным
void aMethod() {
enum Size { SMALL, MEDIUM, LARGE } // ошибка компиляции
}
class Inner {
// enum нельзя объявлять в не статическом контексте
enum Size { SMALL, MEDIUM, LARGE } // ошибка компиляции
}
static class StaticNested {
enum Size { SMALL, MEDIUM, LARGE }
}
public static void main(String[] args) {
System.out.println(MyClass.Size.LARGE);
MyClass.StaticNested.Size s = MyClass.StaticNested.Size.LARGE;
}
}