将 JAXBElement<String> 值转换为 java 字符串

Pyn*_*lvi 3 jaxb jaxb2 jaxb2-basics

我有一个pojo classwhere 变量的返回类型是JAXBElement<String>. 我想将它存储在java string.Could. 有人可以解释一下怎么做吗?

File file = new File("C:/Users/Admin/Desktop/JubulaXMLFiles/DemoWithDrools_1.0.xml");    

        JAXBContext jaxbContext = JAXBContext.newInstance(Content.class);    

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();    

        Content e=(Content) jaxbUnmarshaller.unmarshal(file);    
        String retrivedValue = (String)e.getProject().getName().toString();
        System.out.println(retrivedValue);
Run Code Online (Sandbox Code Playgroud)

输出就像javax.xml.bind.JAXBElement@5a99da. 但我想检索字符串的值retrivedValue

Sub*_*mal 5

如果getProject()返回类型,JAXBElement<String>getName()返回 XML 标记的名称。要获取该元素的值,您需要调用getValue().

在下面找到一个小片段

QName qualifiedName = new QName("", "project");
JAXBElement<String> project = new JAXBElement<>(qualifiedName, 
        String.class, null, "funnyCoding");
System.out.printf("getName()  - %s%n", project.getName());
System.out.printf("getValue() - %s%n", project.getValue());
Run Code Online (Sandbox Code Playgroud)

输出

getName()  - project
getValue() - funnyCoding
Run Code Online (Sandbox Code Playgroud)