java - 使用 jaxb 将整数转换为 int

标签 java jaxb jax-ws cxf wsdl2java

我有一个奇怪的情况,类中的 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/

相关文章:

java - 如何在 XML 中指定复杂类型的列表?

java - 为 Web 服务获取客户端的 IP 地址

java - Webservice——客户端服务实例化

web-services - 由于异常 : XML reader error: com. ctc.wstx.exc.WstxParsingException:未声明的命名空间前缀 "ws",无法创建 SOAP 消息

java - BufferedReader 返回 ISO-8859-15 字符串 - 如何转换为 UTF16 字符串?

java - 如何剪切和替换字符串

java - 使用响应式(Reactive)消息传递时,Opentracing 上下文不会在 Quarkus 上传播

java - 从 Android 中的 URL 解析极其简单的 JSON

java - 使用 JAXB 按确定性顺序生成子元素

java - 无法解码 SOAP 错误