我有一个注释为@XmlRootElement
with的类@XmlAccessorType(XmlAccessType.NONE)
.我遇到的问题是,当我不希望它们被绑定时,超类的方法被绑定,并且无法更新类.我希望有一个注释可以放在根元素类上以防止这种情况发生.
例:
@XmlRootElement @XmlAccessorType(XmlAccessType.NONE) public class Person extends NamedObject { @XmlElement public String getId() { ... } }
我希望,只有注释的方法@XmlElement
上Person
会被束缚和整理,但超类的方法都是约束,也是如此.结果XML然后有太多的信息.
如何在不必注释超类本身的情况下阻止超类的方法被绑定?
根据这篇StackOverflow帖子: 我如何忽略超类?
JAX-B无法在不修改超类的情况下忽略超类.引用该帖子的相关部分:
Update2:我在java.net上发现了 一个类似问题的线程.该线程产生了一个增强请求,该请求被标记为另一个问题的副本 ,从而产生了@XmlTransient注释.对这些错误报告的评论让我相信这在目前的规范中是不可能的.
只需添加
@XmlAccessorType(XmlAccessType.NONE)
在每个超类声明(和类本身)前面.
在你的情况下:
@XmlAccessorType(XmlAccessType.NONE) class NamedObject{ [ ... ] }
请记住,必须为每个超类完成此操作,在处理大型类依赖树时经常会忘记它.
当然,接口不需要任何JAXB注释.