JAXB和@XmlType propOrder属性

时间:2012-04-09 08:51:53

标签: java java-ee jaxb

有这个方法:

public Boolean isCorrect() {
    return correct;
}

我不能写:

@XmlType(propOrder = {"id", "description", "correct"})

因为它似乎依赖于访问者方法被命名为get..。是否可以使用is..代替?

2 个答案:

答案 0 :(得分:6)

可以创建一个类型适配器或更改JAXB检索编组变量的方式,如其他答案所示,但这里的问题是您的Boolean返回类型。

如果返回类型是原始is<propertyName>,则JavaBeans规范仅允许名为boolean的getter,否则它应遵循get<propertyName>的通常约定。

此:

public Boolean isCorrect() {
    return correct;
}

应更改为:

public boolean isCorrect() {
    return correct;
}

或:

public Boolean getCorrect() {
    return correct;
}

否则您可能会遇到使用getter / setter来发现POJO变量的库的其他问题。

答案 1 :(得分:2)

您可以在班级中使用@XmlAccessorType(XmlAccessType.FIELD)注释,因此JAXB不关心您的getter / setters签名。