我發現很難將確切的問題轉化爲單詞,所以我只舉一個例子。從類<?獲取枚舉實例擴展枚舉>使用字符串值?
我有兩個Enum
類型:
enum Shape {
CAT, DOG;
}
enum Color {
BLUE, RED;
}
我有一個方法:
public Object getInstance(String value, Class<?> type);
我想用的方法,如:
// someValue is probably "RED", and someEnumClass is probably Color.class
Color c = getInstance(someValue, someEnumClass);
我一直有麻煩確定如何實施getInstance()
。一旦你知道你想要實例化的確切Enum
類,很容易:
Color.valueOf("RED");
但如何才能使這個上面一行與未知Class
實現呢? (但是,已知someEnumClass
是Enum
的子類。)
謝謝!
+1枚舉是專門爲你不要需要經過反射機械你自己。很好解析和發現。 –
爲什麼?因爲他要求。我試圖指出他的問題的解決方案。 – chahuistle
非常好,謝謝你的解決方案和詳細的解釋。 Enum.valueOf()方法完美工作! –