在以下代码中使用注释时,我对Jaxb感到惊讶:
@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;
}
}
我希望unmarshall结果是空的,但是他就像是直接使用该字段一样填充(尽管该字段是私有的)。
问题
答案 0 :(得分:1)
Jaxb如何访问私有属性?
通过反思。你(大部分时间)都可以Field.setAccessible(true)
进入该领域,即使它是私有的。
我怎么能让他使用getter / setter(同时保持FIELD访问权限)
这是一个奇怪的问题。 @XmlAccessorType
正是指定如何访问映射类的属性。您为什么要指定FIELD
访问权限但实际使用PROPERTY
访问权限?