次のコードを検討してください。
public interface Foo extends Comparable<Foo> {}
public enum FooImpl implements Foo {}
タイプ消去の制限により、次のエラーが表示されます。
java.lang.Comparable は異なる引数で継承できません:
<Foo>
および<FooImpl>
次の要件があります。
FooImpl
注釈のデフォルト値として使用する必要があるため、列挙型である必要があります。- 私のインターフェースの契約は、それが比較可能である必要があるということです。
インターフェイスでジェネリック境界を使用しようとしましたが、これは Java ではサポートされていません。