unnecessary_getters_setters
避免仅仅为了“安全”而将字段包装在 getter 和 setter 中。
详情
#避免仅仅为了“安全”而将字段包装在 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;
}
启用
#要在 analysis_options.yaml
文件中的 linter > rules 下启用 unnecessary_getters_setters
规则,请添加 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