0

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

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

我有一个实现转换器的 SomeConverter 类。

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

有没有办法从一些转换器方法/属性中获取它,或者我必须从其他地方获取它?

4

2 回答 2

2

Converter 只是一个接口,因此没有什么可以阻止您更改构造函数SomeConverter以接收 XStream 对象。然后,您将可以使用已实现的方法访问它。例如

XStream xstream = new XStream();
xstream.registerConverter(new SomeConverter(xstream));  
于 2010-09-28T22:26:18.427 回答
1

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

于 2010-09-28T22:02:22.123 回答