我想在 XML 中创建内联列表。像这样的事情:
<numbers>
<phone>1234</phone>
<phone>5678</phone>
<phone>3456</phone>
</numbers>
教程 here 重点介绍了如何完成此操作。
现在我不知道如何处理
public Order(@Attribute(name="name") String name,
@Element(name="product") String product)
或
public OrderManager(@ElementList(name="orders") List<Order> orders) {
this.orders = orders;
}
我从未使用过 Java 中的列表。
我的案例:
数据库在查询时将填充一个数组 phone_numbers[x]
。我应该如何使用数组和构造函数注入(inject)中的值生成如上所述的 XML 文件?
最佳答案
假设您有一个类PhoneNumbers
,如下所示:
@Root
public class PhoneNumbers {
@ElementArray(name="numbers", entry = "phone")
private String[] phones;
public PhoneNumbers(String[] phones) {
this.phones = phones;
}
}
在这种情况下不需要转换为List
。
String[] phone_numbers= new String[] { "1234", "5678" }; // populate from DB instead
PhoneNumbers numbers = new PhoneNumbers(phone_numbers);
// to serialize
Serializer serializer = new Persister();
serializer.write(numbers, System.out);
这将打印出以下 XML:
<phoneNumbers>
<numbers length="2">
<phone>1234</phone>
<phone>5678</phone>
</numbers>
</phoneNumbers>
Simple 框架无法不打印根元素。因此,如果您确实需要序列化 numbers
元素,则可以使用 String 去除根元素。
就是这样!
关于java - 了解简单 XML 中的构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789746/