メインコンテンツにスキップ

prefer_constructors_over_static_methods

安定版

インスタンスを作成するために、静的メソッドではなくコンストラクタを定義することを推奨します。

詳細

#

インスタンスを作成するために、静的メソッドではなくコンストラクタを定義することを推奨します。

ほとんどの場合、名前付きコンストラクタを使用する方が静的メソッドを使用するよりも、インスタンス化がより明確になるため理にかなっています。

悪い例

dart
class Point {
  num x, y;
  Point(this.x, this.y);
  static Point polar(num theta, num radius) {
    return Point(radius * math.cos(theta),
        radius * math.sin(theta));
  }
}

良い例

dart
class Point {
  num x, y;
  Point(this.x, this.y);
  Point.polar(num theta, num radius)
      : x = radius * math.cos(theta),
        y = radius * math.sin(theta);
}

有効にする

#

prefer_constructors_over_static_methods ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に prefer_constructors_over_static_methods を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_constructors_over_static_methods

代わりに YAML マップ構文を使用してリンタールールを設定している場合は、linter > rules の下に prefer_constructors_over_static_methods: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    prefer_constructors_over_static_methods: true