使XStream忽略一个特定的私有变量

Tig*_*ine 7 java xstream

我正在编写一个保存函数的类有一点问题.

我正在使用XStream(com.thoughtworks.xstream)使用DOMDriver将类序列化为XML.

这个类看起来像这样:

public class World {
  private Configuration config;
  public World(Configuration config) {
     this.config = config;
  }
}
Run Code Online (Sandbox Code Playgroud)

所以,这里的问题是我不希望在序列化世界时序列化配置,而是在调用fromXml()时我想给XStream一个预构建的Configuration实例.

这里的问题主要是类设计,Configuration包含对GUI类的私有引用,因此序列化配置意味着使用GUI等完全序列化整个应用程序.这有点不好.

有没有办法指示XStream不序列化私有字段配置,并在加载XStream时使用配置实例?

问候丹尼尔

bea*_*lex 11

由于文件说,在这里:http://x-stream.github.io/annotations-tutorial.html(忽略字段),可以使用@XStreamOmitField标注为"忽略"的字段.

  • 谢谢你的回答.如本页所述:只有在调用`xstream.processAnnotations()`或`xstream.autodetectAnnotations(true)`时才会处理注释. (2认同)
  • 或者,`XStream.omitField`. (2认同)