XStream不支持自定义转换器交叉委派?

时间:2011-08-09 01:25:49

标签: java xstream

在我看来,Java XStream库不支持交叉委派。我的信念是否正确?

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

<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节点并将解组转发给转换器以获取此类节点并返回结果,以便node-type-x转换器可以根据需要处理结果。就目前而言,XStream似乎要求“node-type-x”的转换器处理这些节点的所有子节点。

1 个答案:

答案 0 :(得分:2)

两种简单的方法:

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