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
除非另有说明,否则本网站上的文档反映了 Dart 3.7.1 版本。页面上次更新于 2025-03-07。查看源代码 或 报告问题。