java - XML序列化只序列化一个字段

标签 java xml serialization

我的 XMLEncoder 有以下问题。我想序列化一个看起来像这样的类:

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编码“Java Beans”。它没有领域的意识;它只使用 getter 和 setter。如果存在“循环”,那么它将使用 xml:idxml:idref 来处理引用。

关于java - XML序列化只序列化一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8617021/

相关文章:

java - Activity 结果错误

java - Decorator模式链式方法如何调用?

c# - 在 C# 中将 XML 反序列化为类 obj

xml - 在另一个 DTD 中包含一个 DTD

java - 使用 JDom2 解析 HTML 时引号导致 IllegalNameException

c# - JSON 反序列化为构造的 protected setter 数组

java - java解析xml字符串异常如何解决?

java - 将图像插入 MySQL

json - Golang 序列化/反序列化一个空数组而不是 null

Java 客户端和服务器应用程序 : Serialization or REST/SOAP/RPC?