Java.lang.reflect.Type
インスタンスがEmumオブジェクトを表しているかどうかを確認したいと思います。
==比較を使用して、特定のクラスのインスタンスであるかどうかを確認できます。例:
type == String.class // works
しかし、これはEnumクラスでは機能しないようです。
type == Enum.class // doesn't work
...インスタンスは特定の列挙型であるため、これは理にかなっていますが、タイプが任意の列挙型用であるかどうかを確認したいと思います。
タイプが列挙型であるかどうかを見分ける方法を誰かが私に明白に説明してもらえますか?
if(type instanceof Class && ((Class<?>)type).isEnum())
Class.isEnum()がそれを行います。
Oracle Doc を参照してください
このタイプの比較を比較するために.equalsメソッドを使用してみませんか。 ==は主にプリミティブ型に使用されます。
type.equals(Enum.class)
または多分あなたはあなた自身のクラスを比較する必要があるでしょう。
type.equals(MyClass.class)
if(type instanceof Class && (Class)type.getClass().isEnum()) {...}