Неправильно распространять Enum
непосредственно в пределах языка . Каждый раз, когда вы объявляете enum
, делает создание подкласса Enum
.
Способ JLS запрещает вам «вручную» объявлять класс, который расширяет Enum
просто запретить это явно. Из JLS-раздел 8.1.4 :
Это ошибка времени компиляции, если ClassType называет класс Enum или любой его вызов.
blockquote>(Где
ClassType
- тип, который вы расширяете.)Без этого правила ваш код был бы совершенно прав.