我对'StackExchange'很陌生,所以如果我的查询问得较早或不是特别清楚,请原谅。有没有办法在xstream中为两个不同的类使用相同的别名来设置别名
我正在使用XStream类将响应XML解析为JAVA对象(使用fromXML()方法)。我创建了实用工具类(例如XStreamUtil - 单例类),并使用诸如“XSTREAM.alias(”NewDataSet“,Transactional.class);”等语句在其中配置了不同的模型类。
现在的问题是 - 我从具有相同父节点(例如)的第三方获取XML作为不同API的响应。所以,如果我使用下面的代码 -
XSTREAM.alias(“NewDataSet”,Transactional.class); XSTREAM.alias(“NewDataSet”,Open.class);其中,
XSTREAM.alias(“NewDataSet”,Details.class); XStream无法解析前两个类(Transactional & Open)的响应,并试图通过'Details.class'(配置的最后一个)解析它。这引发异常像下面 -
brilliance.model.report.notify.Details.Transactional
---- Debugging information ----
field : Transactional
class : com.brilliance.model.report.notify.Details
required-type : com.brilliance.model.report.notify.Details
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /NewDataSet/Transactional
version : 1.4.7
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$Un knownFieldException: No such field com.brilliance.model.report.notify.Details.Transactional
---- Debugging information ----
field : Transactional
class : com.brilliance.model.report.notify.Details
required-type : com.brilliance.model.report.notify.Details
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /NewDataSet/Transactional
version : 1.4.7
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.handleUnknownField(AbstractReflectionConverter.java:495)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.do Unmarshal(AbstractReflectionConverter.java:351)
.. .. ..
我在这里的问题是 - 我们是否有一种方法来定义相同的别名为两个不同的Java类,通过XStream的是使用? (