2014-09-25 117 views
1

我正在使用XStream將XML映射到相應的POJO。我的XML結構如下使用xstream將XML映射到POJO

<myTag> 
<TagABC> 
    <x> ... </x> 
    <y> ... </y> 
</TagABC> 
    . 
    . 
    . 
<TagABC> 
    <x> ... </x> 
    <y> ... </y> 
</TagABC> 
</myTag> 

所以有多個TagABC。我在我的POJO定義TagABC爲

private List<TagABCHolder> TagABC; 

其中TagABCHolder是另一個POJO,僅僅包含X,Y和他們的getter,setter方法

現在,當我嘗試做使用XStream的下面

代碼映射
xstream.alias("TagABC", TagABCHolder.class); 

xstream.fromXML(xml); 

這並不承認POJO定義TagABC鏈表結構,並拋出以下

---- Debugging information ---- 
message    : x: x 
cause-exception  : com.thoughtworks.xstream.mapper.CannotResolveClassException 
cause-message  : x: x 
class    : com.a.b.c.testing.common.TagABCHolder 
required-type  : java.util.ArrayList 
path    : /myTag/TagABC/x 
line number   : 1 
012錯誤

任何想法如何解決這個問題?

回答

1

我得到了解決方案。

這只是一個帶註釋的技巧。

這裏就是我所做的:

我加的POJO(TagABCHolder)@XStreamImplicit註釋

@XStreamImplicit(itemFieldName="TagABC") 
private List<TagABCHolder> TagABC; 

和公正的處理放在從代碼中POJO中的註釋我在那裏繪製

xstream.processAnnotations(TagABCHolder.class); 

就是這樣!