比方說,我有一個值枚舉的返回列表從字符串常量枚舉的名字值
'Language'
一個字符串,我有一個叫做語言
enum Language{
English,
Spanish,
French
}
枚舉是否有使用方法字符串'Language'並返回Enum Language的值。我基本上想知道是否有一種方法通過傳遞字符串來獲取Enum Language的實例。有點像
Class.forName()
但是用於枚舉。
比方說,我有一個值枚舉的返回列表從字符串常量枚舉的名字值
'Language'
一個字符串,我有一個叫做語言
enum Language{
English,
Spanish,
French
}
枚舉是否有使用方法字符串'Language'並返回Enum Language的值。我基本上想知道是否有一種方法通過傳遞字符串來獲取Enum Language的實例。有點像
Class.forName()
但是用於枚舉。
enum是一個類,所以使用完全限定名(例如"com.mydomain.myapp.Language"
),您可以從Class.forName
獲得枚舉的類。從那裏,您可以使用Class對象的反射:getEnumConstants爲您提供了枚舉的所有值,如果您想要名稱,則可以在Enum對象上使用.name。
什麼是com.mydomin.myapp?再加上我的枚舉是在一個包中,所以我如何在名稱中包含 – 2012-08-02 19:28:43
類的全限定名[如文檔](http://docs.oracle.com/javase/6/docs/api/java/lang/ Class.html#的forName(java.lang.String中))。 – Xaerxess 2012-08-02 19:30:14
我認爲這是正確的答案,只想添加另一個與Oracle教程中的鏈接,顯示如何使用反射來獲取值:http://docs.oracle.com/javase/tutorial/reflect/special/enumMembers .html – 2012-08-02 19:30:26
忽略我的關閉,這是java(oops) – Hogan 2012-08-02 19:24:17
也許這就是答案?我不知道Java以及不能測試:http://stackoverflow.com/a/4751239/215752 – Hogan 2012-08-02 19:25:39