例:
public enum TestEnum {
FOO(4), BAR(7);
public final int externalValue;
private TestEnum(int externalValue) {
this.externalValue = externalValue;
}
}
getExternalValue() メソッドがないことに注目してください。externalValue フィールドは final であるため、変更されるリスクはありません。このようなコードを Sonar で実行すると、「変数 'externalValue' はプライベートでアクセサ メソッドが必要です」というエラーが表示されます。
私がまったくのバカだと仮定して説明してください: なぜ絶対に externalValue のアクセサーを実装して使用する必要があるのですか?
理由を説明するのは難しいですが、Java Bean パターンが巧妙な構造から普遍的な法則へと変わった方法には、なんとなく動揺します。常に必要である必要はないと思います。