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

我正在尝试为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>被封送?

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

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