使用 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;