目錄
目錄

Prefer defining constructors instead of static methods to create instances.

This rule is available as of Dart 2.0.0.

Details

PREFER defining constructors instead of static methods to create instances.

In most cases, it makes more sense to use a named constructor rather than a static method because it makes instantiation clearer.

BAD:

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));
  }
}

GOOD:

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);
}

Usage

To enable the prefer_constructors_over_static_methods rule, add prefer_constructors_over_static_methods under linter > rules in your analysis_options.yaml file:

linter:
  rules:
    - prefer_constructors_over_static_methods