2014-02-06 69 views
0

我必須創建一個emum wih類類型。創建所有類類型的枚舉常量?

枚舉應包含以下內容:

Employee.class 
Boarding.class 
Address.class 
Salary.class 

如何創建與上述參數枚舉?

謝謝!

+0

枚舉常量名稱是字符串像'FOOBAR',你爲什麼需要一個「枚舉與類」? – 2014-02-06 06:29:00

+0

RC,我必須將類型傳遞給某些API。所以我必須在Enum中保留所有這些類的類型。 – user3269829

+0

將它們存儲在列表中並將列表傳遞給API。 – 2014-02-06 06:32:21

回答

0

枚舉是他們自己的類型,他們不能是其他類的類型。你想要一個枚舉來保存對其他類的引用。也許是這樣的。

public enum Thing { 
    EMPLOYEE(Employee.class), 
    BOARDING(Boarding.class), 
    ADDRESS(Address.class), 
    SALARY(Salary.class); 

    private final Class clazz; 
    Thing(Class clazz) { 
    this.clazz = clazz; 
    } 

    public Class getClassOfThing() { 
    return clazz; 
    } 
} 

你可能會想出更好的名字雖然。

0
public enum Enumss { 

    EMPLOYEE("Employee.class"), 
    BOARDING("Boarding.class"), 
    ADDRESS("Address.class"), 
    SALARY("Salary.class"); 

    private String value; 

    private Enumss(String s){ 
     this.value = s; 
    } 

    public String getValue() { 
     return value; 
    } 

} 

如果你想要類的名字,那麼如果你想引用類的使用。

static Class<?> forName(String className) 
+0

他想知道的類,而不是像類名用的「.class」字符串追加... –

+0

使用的Class.forName可以獲得參考類,但說實話,對於@PaulHicks解決方案看起來更好的xD – Koitoer