【问题标题】:Should I split up my XStream converter per class?我应该按班级分开我的 XStream 转换器吗?
【发布时间】:2025-12-12 03:10:01
【问题描述】:

我正在开发一个使用 XStream 写入 XML 的程序。就目前而言,我只有一个实现 Converter 的类。这个单一的转换器接受我的整个配置,它的根是一个 HashMap,每个键的值是 VMwareServer 类的新实例,它又具有一个 HashMap,其中键的值是 VMwareVirtualMachine 类的新实例.每个相应的类都有设置和获取IP addressport number 之类的方法。

我想知道这是否是实现 XStream 转换器的正确方法,还是我应该创建一个单独的转换器来单独将每个类转换为 XML?

如果对我的意思仍有疑问,我可以显示一些代码。

【问题讨论】:

  • 你在转换器里做什么? Xstream 可以在没有任何转换器的情况下对任何对象进行深度编组。
  • 主要是我使用转换器将输出重新格式化为更“漂亮”的形式。我使用转换器的原因是一些来自 java 的对象被移动以使事情井井有条。
  • 每个班级都应该有转换器。

标签: java converter xstream


【解决方案1】:

这有点值得商榷,但我主张为每个类设置一个单独的转换器。这有几个好处:如果您以后需要返回完整视图的子集,您将能够轻松地按照基于类的线分解结构(例如,通过权限限制信息)。如果您需要在不同的上下文中返回稍微不同的表示,您可以逐个类地执行此操作,而不是在您的整体类中复制所有的表示逻辑。

【讨论】:

  • 是的,这就是我的想法。在某些情况下,取决于某些值,我最终不会生成 XML 文件的某些部分。
最近更新 更多