JAXB如何将空值字符串解析为null Integer

时间:2014-12-02 20:07:59

标签: java xml jaxb

我有下一个问题。 我必须将XLS的属性定义为Integer。当XMLAdapter(为我定义)接收到值,而不是接收null或空时,您收到0(因为de Integer解析emty''值为0),这在我的情况下是不正确的。我怎么知道这个值是来自“”还是0?我需要如果属性值为“”,则该值应为Null; if 0,应为0.对我而言,它是JAXB中的一个错误。 我读到:
JAXB: how to make JAXB NOT to unmarshal empty string to 0
但它不是我的解决方案。
我该怎么办?!
我定义了mi XMLAdapter:

public class IntegerAdapter extends XmlAdapter<Integer, Integer> {
    @Override
    public Integer marshal(Integer arg0) throws Exception {
        return arg0;
    }
    @Override
    public Integer unmarshal(Integer v) throws Exception {
        return v;
    }
}

我没有像XmlAdapter<String, Integer>那样定义它,因为XLS属性的定义必须是Integer。 谢谢!

1 个答案:

答案 0 :(得分:1)

您应该使用以下内容:

XmlAdapter<String, Integer>

  

我没有像XmlAdapter<String, Integer>那样定义它,因为   XLS属性的定义必须是Integer。

您可以使用@XmlSchemaType注释来设置所需的架构类型。

@XmlJavaTypeAdapter(IntegerAdapter.class)
@XmlSchemaType(name="integer")
public Integer getAge() {
    return age;
}
相关问题