使用jaxb将java整数转换为int
我遇到了一个奇怪的情况,类中的getter返回一个原始int类型,setter接受一个整数类
当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更改为整数或添加具有基元类型的新setter,但我可以添加注释
# 1 楼答案
从电话发帖,请容忍我! 该属性与javabeans规范不匹配,所以这就是问题所在,您可能知道。您可以使用一个新名称添加一个新的setter/getter对吗?该名称都使用Integer,并将XML标记放在新属性上?新方法只会委托给现有方法。嗯
# 2 楼答案
你不能引进任何额外的方法真是太遗憾了。如果您可以添加一个额外的private方法,您可以这样做:
如果这不起作用,您可能会被困在使用^{} 和^{} 中,但这真的很糟糕
# 3 楼答案
您可以通过将JAXB配置为使用字段访问来解决此问题。这是通过
@XmlAccessorType
注释完成的:了解更多信息