MyInterface を実装する列挙型があります。その列挙型を使用して他のクラスを作成しているときに、enumClz を MyInterface を実装したクラスに制限したいと考えています。
T extends Enum< T extends MyInterface>
というわけで、ジェネリック型宣言時にシグネチャを " " と記述します。
public <T extends Enum< T extends MyInterface>> C1( Class<T> enumClz) {
for (T anEnumConst : enumClz.getEnumConstants()) {
//....process
}
}
私が驚いたのは、IDE が " " で "unexpected bound" だと言っていることですT extends MyInterface
。このような 2 つの単語のエラー メッセージが何を意味するのかわかりません。これに関する解決策はありますか?
ところで、あまり重要ではありませんが、奇妙な質問があります。列挙型 T は、次の無限ループと同等にできますか
<T extends Enum< T extends Enum<T extends<....>>>>
?