使用 JAXB 解组 Number 类型的元素
Unmarshaling an element of type Number with JAXB
你好,我正在使用 JAXB 将 XML 解组为 JAVA,我的 xml 文档中有一个元素 "value",它可能是 int 类型,或者double,而我的javaclass中这个元素对应的属性是"value"类型的Number。
我认为 JAXB 不支持 "Number" 类型的整理,有人知道如何处理这个问题吗?一个例子将非常感激。
提前致谢。
写适配器,例如:
import java.math.BigDecimal;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class NumberAdapter extends XmlAdapter<String, Number> {
@Override
public Number unmarshal(String v) throws Exception {
return new BigDecimal(v);
}
@Override
public String marshal(Number v) throws Exception {
return v.toString();
}
}
并将其与变量声明一起使用:
@XmlJavaTypeAdapter(NumberAdapter.class)
private Number myNumber;
你好,我正在使用 JAXB 将 XML 解组为 JAVA,我的 xml 文档中有一个元素 "value",它可能是 int 类型,或者double,而我的javaclass中这个元素对应的属性是"value"类型的Number。
我认为 JAXB 不支持 "Number" 类型的整理,有人知道如何处理这个问题吗?一个例子将非常感激。 提前致谢。
写适配器,例如:
import java.math.BigDecimal;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class NumberAdapter extends XmlAdapter<String, Number> {
@Override
public Number unmarshal(String v) throws Exception {
return new BigDecimal(v);
}
@Override
public String marshal(Number v) throws Exception {
return v.toString();
}
}
并将其与变量声明一起使用:
@XmlJavaTypeAdapter(NumberAdapter.class)
private Number myNumber;