我对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