繁体   English   中英

如何访问Converter内部的XStream对象

[英]How to access the XStream object inside the Converter

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

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

我有一个实现Converter的SomeConverter类。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM