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

发布于 2024-08-31 19:00:11 字数 524 浏览 6 评论 0原文

我目前正在为其编写保存函数的类有一个小问题。

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

该类如下所示:

public class World {
  private Configuration config;
  public World(Configuration config) {
     this.config = config;
  }
}

因此,这里的问题是我不想在序列化 world 时序列化 Configuration,而是想在调用 fromXml() 时为 XStream 提供预构造的 Configuration 实例。

这里的问题主要是类设计,配置持有对 GUI 类的私有引用,因此序列化配置意味着使用 GUI 等完全序列化整个应用程序。这有点糟糕。

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

问候丹尼尔

I have a little problem with a class I am currently writing a save function for.

I'm using XStream (com.thoughtworks.xstream) to serialize a class to XML using the DOMDriver.

The class looks like this:

public class World {
  private Configuration config;
  public World(Configuration config) {
     this.config = config;
  }
}

So, the issue here is that I do not want to serialize Configuration when serializing world, rather I'd like to give XStream a preconstructed Configuration instance when calling fromXml().

Problem here is mainly class design, Configuration holds a private reference to the GUI classes and therefore serializing Configuration means serializing the whole application completely with GUI etc.. And that's kind of bad.

Is there a way to instruct XStream to not serialize the private field config, and upon load supply XStream with a configuration instance to use?

greetings Daniel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高冷爸爸 2024-09-07 19:00:11

正如文档所说: http://x-stream.github.io/annotations-tutorial .html(省略字段)您可以使用@XStreamOmitField注释来“忽略”字段。

As documentation says here: http://x-stream.github.io/annotations-tutorial.html (Omitting Fields) you can use @XStreamOmitField annotation to "ignore" fields.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文