Jaxb - 覆盖XMLElement名称属性

时间:2013-05-13 11:20:14

标签: xml jaxb

我有一个父类ClassA,我无法修改。它有一个字段“field1”,上面没有XmlElement注释。


@XmlRootElement
public class ClassA {
    protected String field1;
}

另外,我有一个扩展ClassA的类ClassB。我收到的xml,字段“field1”,名为“newField1”。

我如何向Jaxb表明xml中的标签“newField1”实际上对应于基类中的“field1”。

由于

1 个答案:

答案 0 :(得分:1)

确定。找到了答案。 所有需要做的就是在派生类中创建一个setter方法,例如


    @XmlElement(name = "newField1")
    public void setField1(String field1) {
        this.field1 = field1;
    }

Ofc,这假设您正在访问的字段在基类中具有受保护的访问权限。否则你可能需要稍微肮脏并做一些反思;)