我對Java相對較新,希望對此有所幫助!Java/JPA - 在對象/實體上動態設置屬性
我有十足的產品的XML文件是這樣的:
<product>
<title>Product Title</title>
<colour>Red</colour>
</product>
而且我有一個JPA實體是這樣的:
@Entity
public Product extends Model {
public String title;
public String colour;
}
而且我可以高興地解析XML到像我JPA對象這樣的:
public void parseElement(String elementName, String elementValue) {
if (elementName == "title") {
product.title = elementValue;
}
else if (elementName == "colour") {
product.colour = elementValue;
}
}
然而問題每個產品有超過50個字段,而不僅僅是兩個字段。我可以寫一個50+的子句if-else語句,但是認爲在這裏首先要檢查更好的選擇是值得的!
由於XML元素名稱直接匹配到Product類的屬性名稱,我想這樣的事情將是完美的:
public void parseElement(String elementName, String elementValue) {
product[elementName] = elementValue;
}
但Java沒有這樣的符號。還有什麼我可以做的,會達到類似的結果,還是我必須吸了起來,寫一個拼寫if-else語句?
任何幫助將不勝感激。
乾杯!
接受的答案是當時問題的絕佳解決方案。幾個月後,有人要求我們花費大量時間嘗試建議的庫,這些變化非常棒 - 感謝您的建議。我現在正在移植到XStream。乾杯! – 2012-07-18 08:54:48