我對'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的是使用? (