問題があります。ジェネリック型パラメーターを置き換えたクラスの型を解決する必要があります。コードは次のとおりです。
public class EnumSetPlay {
private enum SomeEnum {ONE, TWO}
private static class Test<E extends Enum> {
private Class<E> clazz = (Class<E>) GenericTypeResolver.resolveTypeArgument(getClass(), Test.class);;
public void test() {
for (E element : EnumSet.allOf(clazz))
System.out.println(element);
}
}
public static void main(String... args) {
new Test<SomeEnum>().test();
}
}
クラスタイプSomeEnumを取得する必要があります。Spring GenericTypeResolverクラスを使用しようとしていますが、次のエラーが発生します。
エラー:互換性のないタイプ 必須:E 見つかった:オブジェクト ここで、Eは型変数です。 EはクラスTestで宣言された列挙型を拡張します