首页 文章

更改JAXB带注释的子类的元素名称

提问于
浏览
4

我正在尝试为Web服务域创建jaxb类层次结构 . 我发现覆盖超类中的getter方法的子类可以更改JAXB输出的元素名称,但超类的一个也被写入输出,这是不方便的 . 我想知道是否有一种方法可以抑制超类中的getter .

码:

@XmlType
class SuperClass
{
    @XmlElement(name = "Name")
    public String getName(){}
}

@XmlType
class SubClass extends SuperClass
{
    @Override
    @XmlElement(name = "CoolName")
    public String getName(){}
}

当我将SubClass元素添加到XmlRootElement时,输出XML包含两个元素,<Name>和<CoolName> . 有没有办法抑制<Name>被编组?

1 回答

  • 2

    你需要在SuperClass上映射名称属性吗?如果没有,你可以只标记该属性@XmlTransient .

    class SuperClass
    {
        @XmlTransient
        public String getName(){}
    }
    

相关问题