Как реализовать интерфейс с перечислением, где интерфейс расширяется до Comparable?

Рассмотрите этот код:

public interface Foo extends Comparable<Foo> {}

public enum FooImpl implements Foo {}

Из-за ограничений стирания типа я получаю следующую ошибку:

java.lang.Comparable не может быть унаследован с другими аргументы: и

У меня есть следующие требования:

  • FooImpl должен быть перечислением, потому что мне нужно использовать его как значение по умолчанию в аннотациях.
  • Контракт моего интерфейса заключается в том, что он должен быть сопоставимым.

Я уже пробовал использовать общие границы в интерфейсе, но это не поддерживается в Java.

11
задан Mr_and_Mrs_D 10 April 2014 в 14:53
поделиться