使用JAXB

时间:2015-07-27 14:22:38

标签: java xml jaxb adapter unmarshalling

你好我正在使用JAXB将XML解组为JAVA,我的xml文档中有一个元素“value”,可以是int或double类型,我的java类中这个元素的相应属性是“value” “数字类型。

JAXB不支持umarshaling for“Number”类型我想,有没有人知道如何处理这个问题?一个例子将非常感激。 提前致谢。

1 个答案:

答案 0 :(得分:0)

编写适配器,例如:

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;