JAXB 解组返回空值

JAXB unmarshal returning null values

我正在使用 JAXB 将 XML 文件转换为 java 对象

我在网上看了很多例子,但当我将它解组为 java 对象时,我的对象中仍然得到空值

我想念什么?

File file = new File("BootloaderProtocol.xml");

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

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        Command commanda = (Command) jaxbUnmarshaller.unmarshal(file);
        System.out.println(commanda);

我的class:

 @XmlRootElement(name="Command")
 public class Command {


String COMMAND_ID;
String COMMAND_NAME;
String COMMAND_CODES;


public String getCOMMAND_ID() {
    return COMMAND_ID;
}

@XmlElement
public void setCOMMAND_ID(String COMMAND_ID) {
    this.COMMAND_ID = COMMAND_ID;
}
public String getCOMMAND_NAME() {
    return COMMAND_NAME;
}

@XmlElement
public void setCOMMAND_NAME(String COMMAND_NAME) {
    this.COMMAND_NAME = COMMAND_NAME;
}

public String getCOMMAND_CODES() {
    return COMMAND_CODES;
}

@XmlElement
public void setCOMMAND_CODES(String COMMAND_CODES) {
    this.COMMAND_CODES = COMMAND_CODES;
}

}

这是我的 XML 文件:

 <Command>
    <COMMAND>
        <COMMAND_ID>0xFE01</COMMAND_ID>
        <COMMAND_NAME>Start bootloader</COMMAND_NAME>
        <COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
    </COMMAND>


  </Command>

尝试这样的事情

public class Command {
    @XmlElement(name="COMMAND")
    public NestedCommand command;

    static class NestedCommand {
        String COMMAND_ID;

这是正确的 xml 结构:

<Command>
    <COMMAND_ID>0xFE01</COMMAND_ID>
    <COMMAND_NAME>Start bootloader</COMMAND_NAME>
    <COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</Command>

用这个 xml 试试你的代码。在代码中使用 xml 文件的正确路径。

顺便说一句,我已经用这个 xml 测试了你的代码,它工作正常。