目次

unnecessary_getters_setters

単に「安全のため」にフィールドをゲッターとセッターでラップするのは避けてください。

このルールはDart 2.0から利用可能です。

ルールセット:推奨Flutter

このルールにはクイックフィックスが用意されています。

詳細

#

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