假设我有一个带有一些原始实例变量的类Foo。我用XML文件中的属性初始化它们。现在每个Foo也有一个Bar作为变量,而变量又有自己的属性。由于它们与封闭对象相关联,因此将它们保存在同一文件中是有意义的。我应该如何格式化XML以便它也可以初始化对象?
答案 0 :(得分:5)
使用Spring。它专门设计用于允许这种类型的对象初始化,包括处理对象间引用。
答案 1 :(得分:2)
查看XStream,它允许您轻松地将Java对象层次结构序列化/反序列化为XML。
最简单的是它可以使用POJO,它不需要额外的工作(不需要接口/基类等)。但您可以自定义序列化和反序列化以重命名元素等,以适应现有的XML框架。
答案 2 :(得分:0)
JAXB值得一看:
public class JaxbDemo {
@XmlRootElement
public static class Foo {
@XmlElement public Bar bar;
}
public static class Bar {
@XmlAttribute public int baz;
}
public static void main(String[] args) {
String xml = "<foo><bar baz='123'/></foo>";
Foo foo = JAXB.unmarshal(new StringReader(xml), Foo.class);
System.out.println(foo.bar.baz);
}
}
(公共成员用于演示目的。)