获取声明枚举的类

时间:2014-10-20 04:53:18

标签: java enums

这是关于枚举的Java问题。

我有这些课程:

class Test{
    public static enum TestEnum implements Variable{
        TEST_SOMETHING
        ;
    }
}

class Main{
    public static void main(String[] args){

        //how to get class Object Test from var?
        Variable var = TestEnum.TEST_SOMETHING;

    }
}

那么,如何从变量Test获取值为Variable的Class对象Test.TestEnum.TEST_SOMETHING

1 个答案:

答案 0 :(得分:2)

您可以像这样使用反射:

Class<?> testClass = TestEnum.TEST_SOMETHING.getClass().getDeclaringClass();

getClass()的调用返回一个描述TestEnum枚举的类对象,因为这是&#34;类&#34; TEST_SOMETHING。随后对getDeclaringClass()的调用返回Test,因为TestTestEnum声明的类(其声明类)。

Herejava.lang.Class的完整文档,它将成为几乎所有反射操作的起点。