Возможный дубликат:
определение java Enum
Лучше сформулированный вопрос, который не считается дубликатом:
Что будет отличаться в Java, если декларация Enum не имеет рекурсивной части
если разработчики языка должны были просто использовать Enum < E extends Enum > как это повлияет на язык?
Единственное различие теперь в том, что кто-то может написать
A extends Enum<B>
но поскольку в java не разрешено расширять перечисления, которые будут по-прежнему незаконными. Я также думал о том, что кто-то снабжает jvm байт-кодом, который определяет smth как расширение перечисления, но generics не могут повлиять на это, поскольку все они стираются.
Итак, в чем смысл такой декларации?
Спасибо!
Изменить для простоты рассмотрим пример:
interface MyComparable<T> { int myCompare(T o); } class MyEnum<E extends MyEnum> implements MyComparable<E> { public int myCompare(E o) { return -1; } } class FirstEnum extends MyEnum<FirstEnum> {} class SecondEnum extends MyEnum<SecondEnum> {}
что не так с этой структурой класса? Что можно сделать, чтобы "MyEnum < E extends MyEnum < E → " ограничивал?