我有一个奇怪的情况,类中的 getter 返回原始 int 类型,而 setter 采用 Integer 类。
当 jaxb 将元素解码到此类时,它找不到它正在寻找的 setter:
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(和 setter),以更改模式中字段的类型,但这无济于事。
在解码期间,我收到此错误:该属性有一个 getter“public int com.example.getBar()”但没有 setter。对于解码,请定义 setter 。
我无法修改类,例如,我无法将 bar 更改为 Integer 或添加原始类型的新 setter,但我可以添加注释。
最佳答案
手机发帖,多多包涵! 该属性与 javabean 规范不匹配,所以这就是问题所在,您可能知道。您能否使用新名称添加新的 setter/getter 对,它们都使用 Integer,并将 XML 标记放在该新属性上?新方法只会委托(delegate)给现有方法。
关于java - 使用 jaxb 将整数转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334195/