2010-10-18 96 views
0

我有兩個類似的類,它們只是一個字符串名稱。我想將一個XML適配器添加到列表中,以便我可以從每個列表中獲取一個CSV字符串。如何在JAXB中使用泛型對象列表XmlAdapter

我想聲明我的適配器像這樣:

public class ListXmlAdapter extends XmlAdapter<String, ArrayList<Object>> { 

但是當我嘗試使用此我得到非法註釋例外說ListXmlAdapter並不適用於任何類型我試圖在註釋傳遞的 - 這樣的作爲下面的測試

@XmlElement 
@XmlJavaTypeAdapter(ListXmlAdapter.class) 
List<Test> tests = new ArrayList<Test>() 

我該如何創建這個適配器,我想用於我有不同的對象類型的幾個不同的ArrayList?

回答

0

如果您更改的屬性類型ArrayList中它會工作:

@XmlElement 
@XmlJavaTypeAdapter(ListXmlAdapter.class) 
ArrayList<Test> tests = new ArrayList<Test>(); 
+0

我工作在這裏的遺留應用程序。這會有其他副作用嗎? – Derek 2010-10-18 18:56:06

+0

原來這打破了我的代碼的其餘部分,當我將其更改爲ArrayList - 我有一些刪除/創建錯誤。如果我找不到,我會在後面發佈確切的錯誤。 – Derek 2010-10-18 19:31:44

+0

在此處發佈此問題:http://stackoverflow.com/questions/3962875/dataintegrityviolationexception-when-i-change-a-list-variable-to -arraylist – Derek 2010-10-18 20:01:53

0

你必須改變你的ListXmlAdapter上而不是一個ArrayList列表一起工作。

public class ListXmlAdapter extends XmlAdapter<String, List<Object>>