2014-10-20 105 views
1

这是关于枚举的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; 

    } 
} 

所以,我如何才能从变量Variable与价值Test.TestEnum.TEST_SOMETHING的Class对象Test

+0

调用'toString()'?如果你正在建模行为,也许你应该在'Variable'接口中添加一些方法。 – 2014-10-20 04:54:43

回答

2

您可以使用反射像这样:

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

getClass()调用返回描述TestEnum枚举一个类的对象,因为这对我的TEST_SOMETHING“下课”。随后致电getDeclaringClass()返回Test,因为Test是其中TestEnum声明的类别(其声明类别)。

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

+0

谢谢你的帮助。 – user3635998 2014-10-20 05:10:07