跳到主要内容

unnecessary_getters_setters

稳定版
推荐
提供修复

避免为了“安全”而将字段包装在 getter 和 setter 中。

详情

#

来自 Effective Dart

避免 为了“安全”而将字段包装在 getter 和 setter 中。

在 Java 和 C# 中,即使实现只是转发到字段,也通常将所有字段隐藏在 getter 和 setter(或 C# 中的属性)之后。 这样,如果您需要在这些成员中执行更多工作,您就可以在无需触及调用点的情况下完成。 这是因为在 Java 中调用 getter 方法与访问字段不同,并且在 C# 中访问属性与访问原始字段不是二进制兼容的。

Dart 没有此限制。字段和 getter/setter 完全无法区分。 您可以在类中公开一个字段,然后在以后将其包装在 getter 和 setter 中,而无需触及任何使用该字段的代码。

不良示例

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

如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 unnecessary_getters_setters: true

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_getters_setters: true