我是 Java 的新手,如果有任何帮助,我将不胜感激!
我有一个充满这样产品的 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 不喜欢这种表示法。我还能做些什么来获得类似的结果,还是我必须接受它并编写一个 collosal if-else 语句?
如有任何帮助,我们将不胜感激。
干杯!
最佳答案
Java 知道很多用于 XML 处理的框架。还有一些用于将对象序列化/反序列化为 xml 的库。我建议看看 JAXB .
关于Java/JPA - 动态设置对象/实体的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892122/