java - XStream不支持自定义转换器交叉委托(delegate)?

标签 java xstream

在我看来,Java XStream 库不支持交叉委托(delegate)。我的这个信念正确吗?

所以,我可以解释我的意思,请考虑以下示例:

<node-type-x>
  <node-type-y>
     <a/>
     <b/>
  </node-type-y>
<node-type-y>
  <c/>
  <d/>

假设我们有一个用于“node-type-x”节点的转换器和另一个用于“node-type-y”节点的转换器。我希望在 XStream 中看到的功能是某种类型的 delegate() 方法,我可以在 node-type-x 转换器中调用该方法来识别嵌套节点类型-y 节点并将解码委托(delegate)给此类节点的转换器并返回结果,以便节点类型 x 转换器可以根据需要处理结果。就目前情况而言,XStream 似乎要求“node-type-x”转换器处理此类节点的所有子节点。

最佳答案

有两种简单的方法可以做到这一点:

  1. Register your node-type-y converter使用 XStream 实例,并在您的 node-type-x 转换器内,调用 marshallingContext.convertAnother(object) .
  2. 不要向 XStream 实例注册您的转换器,并在您的 node-type-x 转换器内调用 marshallingContext.convertAnother(object, converter) ,将您想要用于传递的“y”的转换器传递给它。

关于java - XStream不支持自定义转换器交叉委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990468/

相关文章:

java - 检查互联网连接 OKHTTP

java - LinkedHashMap Java 8 的 JUnit 顺序

java - 如何重置构造函数的 getter 和 setter

java - 如何使用 XStream 处理枚举常量重命名?

java - 在 Maven 中禁用站点生成和部署

Java - JScrollPane 与 JTable 未显示

java - XStream如何处理不同的 child ?

java - 解码长 XML 文件的单个非根节点

java - Java XStream 库的现代替代品?

java - XStream、别名和 "DuplicateFieldException"