我有一个奇怪的情况,其中类中的getter返回基本int类型,并且setter接受一个Integer类。使用jaxb将整数转换为int
当JAXB解组这一类的元素,它不能找到它正在寻找二传手:
public class Foo {
int bar;
public int getBar() {
return this.bar;
}
public void setBar(Integer bar) {
this.bar = bar.intValue();
}
}
我曾尝试加入:
@XmlElement (type = java.lang.Integer.class, name = "bar")
吸气剂(和二传) ,来改变模式中的字段的类型,但这没有帮助。
解组期间,我得到这个错误:该属性有一个getter“public int com.example.getBar()”但没有setter。对于解组,请定义setters。
我无法修改类,因为我无法将条更改为整数或添加了一个具有原始类型的新setter,但我可以添加注释。
好点,虽然那会一起跳过setBar()。我们在setter中有一些需要执行的业务逻辑。 – rouble
@prmatta - 这是业务逻辑,你可以在XmlAdapter或afterUnmarshal事件中做些什么。 –
可能 - XMLAdapter如何在这里帮助? – rouble