跳到主要內容

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 規則,請在 linter > rules 下新增 prefer_constructors_over_static_methods: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_constructors_over_static_methods: true