你好我正在使用JAXB将XML解组为JAVA,我的xml文档中有一个元素“value”,可以是int或double类型,我的java类中这个元素的相应属性是“value” “数字类型。
JAXB不支持umarshaling for“Number”类型我想,有没有人知道如何处理这个问题?一个例子将非常感激。 提前致谢。
答案 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;