12

これは奇妙な質問のように聞こえるかもしれませんが、クラスを拡張し、インターフェイスを実装する必要があるジェネリックをどのように定義できますか?私は現在、次のプロトタイプのジェネリック関数を持っています:

public static <E extends Enum<E>> List<E> buildEnumList(Class<E> enumClass)

これは意図したとおりに機能します。私の今の問題は、通過可能なクラスを列挙型であり、特定のインターフェースReadable(java.langではない)を実装するクラスにさらに制限したいということです。ジェネリックは同じキーワードextendsを使用してインターフェイスを実装する必要があることを示しているため、次の疑似動作を取得する方法がわかりません。

public static <E extends Enum<E> implements Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass)
4

1 に答える 1

25

を使用して、インターフェースも実装する必要があること&を示すことができます。E

public static <E extends Enum<E> & Readable> List<E> buildLexicographicalEnumList(Class<E> enumClass) {
于 2012-07-26T15:21:01.063 に答える