Java Jaxb解组器不使用getter/setter,而预期
在以下代码中使用注释时,我对Jaxb感到惊讶:Java Jaxb解组器不使用getter/setter,而预期,java,jaxb,Java,Jaxb,在以下代码中使用注释时,我对Jaxb感到惊讶: @XmlRootElement() @XmlAccessorType(XmlAccessType.FIELD) public class Competences { @XmlElement(name = "lv") private List<Lv> lvs; public List<Lv> getLvs() { return null; } public void setL
@XmlRootElement()
@XmlAccessorType(XmlAccessType.FIELD)
public class Competences {
@XmlElement(name = "lv") private List<Lv> lvs;
public List<Lv> getLvs() {
return null;
}
public void setLvs(List<Lv> lvs) {
this.lvs = lvs;
}
}
@XmlRootElement()
@XmlAccessorType(XmlAccessType.FIELD)
公共类权限{
@XmlElement(name=“lv”)私有列表lv;
公共列表getLvs(){
返回null;
}
公共无效设置lvs(列表lvs){
this.lvs=lvs;
}
}
我希望解组结果是空的,但是他被填充了,就像他直接使用字段一样(尽管字段是私有的)
问题
- Jaxb如何访问私有属性
- 我应该如何让他使用getter/setter(同时保持字段访问权限)
Field.setAccessible(true)
并访问该字段,即使该字段是私有的
我应该如何让他使用getter/setter(同时保持字段访问权限)
这是一个奇怪的问题。
@xmlacessortype
正是关于指定如何访问映射类的属性。为什么要指定字段
访问,而实际使用属性
访问?事实上,我觉得把注释放在属性上而不是放在getter上是很优雅的。所以我让自己相信,没有访问器,他无法访问它们。