unnecessary_getters_setters
「念のため」という理由だけでフィールドをゲッターとセッターでラップすることは避けてください。
詳細
#「Effective Dart」より
避けるべきこと:フィールドを「念のため」という理由だけでゲッターとセッターでラップすること。
JavaやC#では、実装が単にフィールドにフォワードするだけの場合でも、すべてのフィールドをゲッターとセッター(C#ではプロパティ)の後ろに隠すことが一般的です。これにより、後でこれらのメンバーで追加の作業が必要になった場合でも、コールサイトを変更することなく対応できます。これは、Javaではゲッターメソッドの呼び出しとフィールドへのアクセスが異なるため、またC#ではプロパティへのアクセスと生のフィールドへのアクセスがバイナリ互換性がないためです。
Dartにはこの制限がありません。フィールドとゲッター/セッターは完全に区別がつきません。クラスでフィールドを公開した後、そのフィールドを使用しているコードを変更することなく、後からゲッターとセッターでラップすることができます。
悪い例
dart
class Box {
var _contents;
get contents => _contents;
set contents(value) {
_contents = value;
}
}良い例
dart
class Box {
var contents;
}有効にする
#unnecessary_getters_setters ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に unnecessary_getters_setters を追加してください。
analysis_options.yaml
yaml
linter:
rules:
- unnecessary_getters_setters代わりにYAMLマップ構文を使用してリンタールールを設定している場合は、linter > rules の下に unnecessary_getters_setters: true を追加してください。
analysis_options.yaml
yaml
linter:
rules:
unnecessary_getters_setters: true