目录

unnecessary_getters_setters

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

此规则自 Dart 2.0 起可用。

规则集:推荐flutter

此规则有快速修复可用。

详情

#

来自有效的 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