2010-10-18 95 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>>