首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ArrayList上使用JAXBElement?

在ArrayList上使用JAXBElement?
EN

Stack Overflow用户
提问于 2012-03-16 19:24:51
回答 2查看 10.8K关注 0票数 1

如何整理JAXBElement的列表?

我有一个无法注释的POJO,例如:

代码语言:javascript
复制
public class APojo {

private String aString;

public APojo() { 
    super(); 
}

public String getAString() {
    return aString;
}

public void setAString(String aString) {
    this.aString = aString;
}
}

所以我要这么做

代码语言:javascript
复制
APojo aPojo = new APojo();
aPojo.setaString("a string");       
JAXBElement<APojo> aJAXBedPojo = new JAXBElement<APojo>(new QName("apojo"), APojo.class, aPojo);

它被正确地编组了。

然而,

代码语言:javascript
复制
List<JAXBElement<APojo>> list = new ArrayList<JAXBElement<APojo>>();

是不工作的:当我这样做的时候

代码语言:javascript
复制
JAXBContext context = JAXBContext.newInstance(APojo.class, ArrayList.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(list, System.out);

运行时将引发:

代码语言:javascript
复制
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]

这是正常的,因为ArrayList没有注解。

我知道我可以在ArrayList周围创建一个包装器,并用@XmlRootElement注释它,这样我就可以封送这个包装器。

我正在寻找一个没有这样的包装器的解决方案。是否可以创建T为ArrayList的JAXBElement?或者类似的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-06 01:08:52

最好的解决方案似乎是像here解释的那样构建一个包装器。

因为我的目标是从REST web服务返回我的列表,所以将列表包装在javax.ws.rs.core.GenericEntity中对我来说更简单,如下所示

代码语言:javascript
复制
new GenericEntity<List<APojo>>(aPojo) {}
票数 0
EN

Stack Overflow用户

发布于 2012-03-16 21:21:35

我强烈建议您使用XmlAdapter。您可以简单地向编组程序注册适配器,它将使用带注释的适配器类来代替您无法注释的类。

此外,我认为包装器类将比尝试在没有包装器的情况下做一些事情更干净。

也就是说,如果你真的想这样做,你可以尝试以下方法:

代码语言:javascript
复制
List<JAXBElement<APojo>> list = new ArrayList<JAXBElement<APojo>>();
JAXBElement<List<JAXBElement<APojo>>> listElement = new JAXBElement<List<JAXBElement<APojo>>>(new QName("apojolist"), List.class, list);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9736385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档