【问题标题】:Jaxb marshaling primitive typesJaxb 封送原始类型
【发布时间】:2017-12-14 05:45:35
【问题描述】:

我有一个基本类型为 double 和 long 的类。在编组时,我必须避免包含零值的变量。尝试过@XmlJavaTypeAdapter 并在其中尝试返回空值 - 但失败了。

有办法吗? 搜索了其他线程,没有找到解决办法

【问题讨论】:

    标签: java jaxb double marshalling primitive


    【解决方案1】:

    使用下面的适配器

    import javax.xml.bind.annotation.adapters.XmlAdapter;
    
    public class DoubleAdapter extends XmlAdapter<Object, Double> {
    
    public Object marshal(Double value) {
        if(value == Double.MIN_VALUE){
            return null;
        }
        return value;
    }
    
    public Double unmarshal(Object value) {
        return (Double)value;
    
    }
    }
    

    而且可以在模型类中这样使用:

    @XmlRootElement
    public class MyModelClass {
       
       @XmlJavaTypeAdapter(type=double.class, value = DoubleAdapter.class)  
       double someField;
    }
    

    【讨论】:

    • 在下面添加属性@XmlJavaTypeAdapter(type=double.class,value = DoubleAdapter.class)
    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    相关资源
    最近更新 更多