Рассмотрите этот код:
public interface Foo extends Comparable<Foo> {}
public enum FooImpl implements Foo {}
Из-за ограничений стирания типа я получаю следующую ошибку:
java.lang.Comparable не может быть унаследован с другими аргументы:
и
У меня есть следующие требования:
FooImpl
должен быть перечислением, потому что мне нужно использовать его как значение по умолчанию в аннотациях. Я уже пробовал использовать общие границы в интерфейсе, но это не поддерживается в Java.