クラスが列挙型であるかどうかを確認しようとしていますが、何かが欠けていると思います:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
Enum.classが無効であるというエラーが表示されます。では、クラスが列挙型であるかどうかを確認するにはどうすればよいですか?私はそれを決定することは可能だと確信しています、私はそれを手に入れることができません。
ありがとう
正しい構文は次のとおりです。
_Enum.class.isAssignableFrom(test.MyEnum.class)
_
しかし、列挙型の場合、より便利な方法を次に示します。
_if (someObject.getClass().isEnum()))
_
更新:本文(たとえばメソッドをオーバーライドする)を持つ列挙型アイテムの場合、これは実際には機能しません。その場合、使用
_if (someObject instanceof Enum<?>)
_
参照:
Java 5つの新機能-enum
(実際にはそれほど新しいものではありません)について話している場合、これが進むべき方法です:
if (obj.getClass().isEnum()) {
...
}
Enum
がカスタムクラスの場合は、obj instanceof Enum
。