私はこのようなことをしたいと思います:
private Class<? extends Enum<?> implements IMultiBlockEnum> typeEnum;
どうすればいいですか?「implements」の代わりに「&」は機能しませんが、Eclipse も適切な説明を提供しません。
クリストファー・クリンゲ
私はこのようなことをしたいと思います:
private Class<? extends Enum<?> implements IMultiBlockEnum> typeEnum;
どうすればいいですか?「implements」の代わりに「&」は機能しませんが、Eclipse も適切な説明を提供しません。
クリストファー・クリンゲ
&
次のように、推測されたパラメーターの型を宣言する場合にのみ使用できます。
<T extends Enum & IMultiBlockEnum> void x(T a) {}
ワイルドカード タイプでは、タイプの交差を上限として指定することはできません。
なぜそうなのか疑問に思ったら、 の戻り値の型を考えてみてtypeEnum.newInstance()
ください。それは同時に両方Enum<?>
である必要があります。IMultiBlockEnum
関連する JLS の引用については、この回答を参照してください。
PSあなたの例でほとんど意味がないもう1つのことは、2つの独立したワイルドカードを使用することになりますが、明らかに同じタイプとしてキャプチャしたいということです。
Enum を拡張することはできません
列挙型は設計上最終的なものです。