如何在JAXB XmlAdapter中使用通用对象List

时间:2010-10-18 18:33:25

标签: java xml jaxb

我有两个类似的类,只有一个字符串名称。我想在列表中添加一个XML适配器,以便我可以从每个列表中获取一个CSV字符串。

我试图像这样声明我的适配器:

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

但是当我尝试使用它时,我得到了非法的注释异常,说ListXmlAdapter不适用于我试图在注释中传入的任何类型 - 例如下面的测试

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

我如何创建这个我想用于不同对象类型的不同ArrayLists的适配器?

2 个答案:

答案 0 :(得分:0)

如果将属性类型更改为ArrayList,它将起作用:

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

答案 1 :(得分:0)

您必须更改ListXmlAdapter以处理List而不是ArrayList。

public class ListXmlAdapter extends XmlAdapter<String, List<Object>>
相关问题