繁体   English   中英

包装一个JAXBElement实例的字符串

[英]Wrap a String of an instance of JAXBElement

我有以下代码,

JAXBContext jc = JAXBContext.newInstance(TestResults.class);
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
OutputStream os = new FileOutputStream( "nosferatu.xml" );
TestResults tr = new TestResults();
tr.setUuid(new JAXBElement<String>(new QName("uuid"),String.class, "uuidcontent"));
//ObjectFactory objectFactory = new ObjectFactory();
m.marshal(new JAXBElement<TestResults>(new QName("uri","local"),TestResults.class,new TestResults()), System.out);

在这种情况下,我试图将Java String类包装为jaxb element ,因为如果不这样做,我会得到

unable to marshal type “java.lang.String”错误。

但是,当我尝试将java.lang.string包装在jaxb element ,出现以下错误

The method setUuid(String) in the type TestResults is not applicable for the arguments (JAXBElement<String>)

setUuid方法如下所示

public void setUuid(java.lang.String value) {
    this.uuid = value;
}

然后,如何将我的String包装为一个不会抛出此错误的jaxb element

当作为根对象编组时,需要将String的实例包装在JAXBElement以提供根元素信息(与没有@XmlRootElement批注的任何类相同)。

当作为字段或属性值编组时,包含元素通常从包含字段/属性派生,因此默认情况下不需要JAXBElement

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM