【发布时间】:2017-12-14 05:45:35
【问题描述】:
我有一个基本类型为 double 和 long 的类。在编组时,我必须避免包含零值的变量。尝试过@XmlJavaTypeAdapter 并在其中尝试返回空值 - 但失败了。
有办法吗? 搜索了其他线程,没有找到解决办法
【问题讨论】:
标签: java jaxb double marshalling primitive
我有一个基本类型为 double 和 long 的类。在编组时,我必须避免包含零值的变量。尝试过@XmlJavaTypeAdapter 并在其中尝试返回空值 - 但失败了。
有办法吗? 搜索了其他线程,没有找到解决办法
【问题讨论】:
标签: java jaxb double marshalling primitive
使用下面的适配器
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;
}
【讨论】: