1

この方法を持つ:

public Boolean isCorrect() {
    return correct;
}

私は書くことができません:

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

アクセサーメソッドの名前に依存しているように見えるためですget..is..代わりに使用することは可能ですか?

4

2 に答える 2

6

他の回答で提案されているように、型アダプターを作成するか、JAXB がマーシャリング用の変数を取得する方法を変更できますが、ここでの問題は戻りBoolean値の型です。

is<propertyName>JavaBeans 仕様では、戻り値の型がプリミティブである場合にのみ getter という名前を使用できます。booleanそれ以外の場合は、 の通常の規則に従う必要がありget<propertyName>ます。

これ:

public Boolean isCorrect() {
    return correct;
}

次のように変更する必要があります。

public boolean isCorrect() {
    return correct;
}

また:

public Boolean getCorrect() {
    return correct;
}

そうしないと、getter/setter を使用して POJO の変数を検出するライブラリで別の問題が発生する可能性があります。

于 2012-04-09T09:18:20.097 に答える
2

クラスにアノテーションを使用できる@XmlAccessorType(XmlAccessType.FIELD)ため、JAXBはゲッター/セッターの署名を気にしません。

于 2012-04-09T09:04:23.600 に答える