跳到主要内容

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