Javaクラスのブール型変数の正しいgetメソッドの規則とは何ですか?例えば、Javaブール型読み込みメソッドの命名方法
private boolean qExist;
public boolean isqExist() {
return qExist;
}
public void setqExist(boolean qExist) {
this.qExist = qExist;
}
上記の方法は、eclipseによって生成されます。 wsimportのが「qExistは」
public boolean isQExist() {
return qExist;
}
public void setQExist(boolean qExist) {
this.qExist = qExist;
}
ジャクソンJSONシリアライザは、それ以外の場合は、変数の値( - すべて小文字この場合「qexist」)を付加する第1の方法は、クラス中に存在することが期待としての.xsdファイルに生成し、一方JSONオブジェクトに追加します。それがweb uiに渡されたとき、javascriptは 'qExist'を期待しているので変数を知らない。
これは、ブール変数が2つ以上の小文字で始まる場合、ジャクソンは上記の2番目の方法を使用するため、バグのバグかもしれません。
私はジャクソンオブジェクトマッパーにセッター/ゲッター/値のメソッドを探すのではなくフィールドを見て欲しいと言って問題を解決しました。
「Q」を大文字にするのは通常の方法です。 Eclipseはそれほど明るくない。 – Bohemian
isQExistとsetQExistは厳密な型付き言語の大部分で続く標準命名規則です – Kenshin
英語での注釈として... 'doesQExist'は' isQExist'より文法的(そしてもっと自然な*)として一般的に受け入れられています。私は、Java bean仕様のあまり有用でない側面に過度に準拠するのではなく、可読性を最大限にすることを好みます。あなたが発見したように、Jacksonはフィールドを直接参照するよう指示することができます。 – nbrooks