如何访问Converter中的XStream对象

时间:2010-09-28 21:51:34

标签: java xstream

我有一个XStream实例,我已经注册了一些转换器,并按照我想要的方式进行了一些配置。

XStream xstream = new XStream();
xstream.registerConverter(new SomeConverter());
(...)

我有一个实现Converter的SomeConverter类。

出于某种原因,我想访问转换器代码中的xstream对象。

有没有办法从某个Converter方法/属性中获取它,或者我必须从其他地方获取它?

2 个答案:

答案 0 :(得分:2)

Converter只是一个接口,所以没有什么能阻止你改变SomeConverter的构造函数来接受XStream对象。然后,您可以使用实现的方法访问它。 E.g。

XStream xstream = new XStream();
xstream.registerConverter(new SomeConverter(xstream));  

答案 1 :(得分:1)

我相信XStream转换器不会将上下文存储到xstream对象中。这有助于耦合。当然,一个选项可能是声明构造函数参数并将xstream对象传递给它。但我认为更好的解决方案是从Xstream对象获取有关您需要的信息并将其传递给自定义转换器,以便保持XStream与其转换器之间的松散耦合