[英]Serialize an object with a List member
给定以下类别:
public class Container {
private List<SomeData> list;
// public getter & setter for list
}
public class SomeData {
private String data;
// public getter & setter for data
}
当我运行以下代码时:
import java.beans.XMLEncoder;
import java.io.FileOutputStream;
SomeData someData1 = new SomeData();
SomeData someData2 = new SomeData();
someData1.setData("data1");
someData2.setData("data2");
List<SomeData> data = new ArrayList<SomeData>();
data.add(someData1);
data.add(someData2);
Container container = new Container();
container.setList(data);
FileOutputStream os = new FileOutputStream("c:\test.xml");
XMLEncoder encoder = new XMLEncoder(os);
encoder.writeObject(container);
encoder.close();
当我查看“ test.xml”时,列表中只有容器对象的数据,而SomeData对象没有数据(即字符串“ data1”和“ data2”):
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_22" class="java.beans.XMLDecoder">
<object class="Container">
<void property="container">
<object class="java.util.ArrayList">
<void method="add">
<object class="SomeData"/>
</void>
<void method="add">
<object class="SomeData"/>
</void>
</object>
</void>
</object>
</java>
如何序列化“容器”和存储在“容器”列表中的SomeData对象?
只要我为根据Java bean命名约定命名的SomeData.data提供getter,该代码对我来说就可以正常工作:
SomeData.getData()
如果我更改吸气剂的名称,则序列化将无法进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.