2014-10-20 131 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