我對XMLEncoder有以下問題。我想序列化類,看起來像這樣:僅限XML序列化序列化一個字段
public class MyClass{
private Object myObject;
private Object anotherObject;
private static MyClass instance = new MyClass();
[myObject and anotherObject are set in the class later...]
public static MyClass getInstance(){
return instance;
}
[getter and setter methods here]
}
現在我想序列化這樣的對象(內部MyClass的):
public void saveObject(){
[try catch stuff not shown]
FileOutputStream fos = new FileOutputStream(new File("object.xml"));
XMLEncoder xmle = new XMLEncoder(fos);
xmle.writeObject(instance);
xmle.close();
}
但我object.xml不包含的價值觀myObject和anotherInstance,看起來像這樣:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_24" class="java.beans.XMLDecoder">
<object class="MyClass"/>
</java>
這是怎麼回事? XMLEncoder是否檢測到具有相同類的靜態字段的循環並且不會進一步序列化它?但我沒有得到任何錯誤... 我可以標記該字段爲不可序列化或其他?
嗯,它不是我第一次使用XMLEncoder,它的工作原理總是和你描述的一樣......但是在這種情況下,它不工作!即使我把所有的init東西放在構造函數裏面...... – reox 2011-12-23 15:16:23