我試圖通過解析一個xml文檔來查找值來以編程方式設置Field
的值。作爲對象類型返回一個枚舉
我的結構有些像這樣:
value = parseXml();
field.set(myObject, value);
private Object parseXml()
{
String value = getValueFromXmlNode();
if (type.isInstance(Enum.class))
{
return Enum.valueOf(((Class<Enum>) type), value);
}
else
{
return value;
}
}
也能正常工作在大多數情況下。但是,如果該字段預計爲Enum
,則不再有效。因爲我將我的方法的返回類型設置爲Object
,所以枚舉被轉換爲字符串。然後field.set()
調用失敗。
讓方法返回一個泛型可能是Enum
的正確方法是什麼?
使用原始類型有對象包裝,autobox和unbox,有Enum
有類似的東西嗎?
請更多代碼;例如,你使用什麼XML API? – fge
爲什麼我使用的是XML API?這是一個設計問題。我遺漏代碼的原因是因爲它的長度爲300行。我會填寫更多相關信息。 –
好吧,並不是所有的XML API都以相同的方式反序列化,這似乎是一個反序列化問題 – fge