【发布时间】:2019-07-18 03:20:42
【问题描述】:
我正在 Flutter 中制作应用程序,并且为此使用 Android Studio。但是使用alt+insert命令自动生成getter和setter并不能自动生成getter和setter,有什么办法吗?
【问题讨论】:
标签: android-studio dart flutter
我正在 Flutter 中制作应用程序,并且为此使用 Android Studio。但是使用alt+insert命令自动生成getter和setter并不能自动生成getter和setter,有什么办法吗?
【问题讨论】:
标签: android-studio dart flutter
在 Dart 中你不需要它。
一个字段相当于一个 getter/setter 对。 final 字段相当于一个 getter。
如果需要额外的逻辑,您只需将其更改为实际的 getter/setter,并且此更改对于该类的用户是非破坏性的。
如果 getter/setter 不包含其他逻辑,则私有字段的公共 getter/setter 方法在 Dart 中是一种反模式。
class Foo {
String bar; // normal field (getter/setter)
final String baz; // read-only (getter)
int _weight;
set weight(int value) {
assert(weight >= 0);
_weight = value;
}
int get weight => _weight
}
【讨论】:
我没有清楚地理解您的问题,但请检查这是否有帮助。
String _myValue = "Hello World";
现在在 mac 中按 Comman+N 并选择 Getter 和 Setter。
现在您可以看到为您生成的 Getter 和 Setter。
String _myValue = "Hello World";
String get myValue => _myValue;
set myValue(String value) {
_myValue = value;
}
确保使用“_”作为私有变量的前缀。
要了解 dart 中的 getter 和 setter,请关注 this youtube 视频。
编辑:
注意到我的回答获得了更高的票数,我有责任在这里澄清一些事情。正如 Günter Zöchbauer 正确提到的,Dart 不需要显式的 getter/setter 声明。
【讨论】:
在 Android 工作室中:
【讨论】:
Android Studio 飞镖
我也遇到了同样的问题,我发现我们必须用下划线 (_TestVariable) 声明我们的私有变量名。
然后使用快捷键Alt + insert(在Windows上)自动生成Getters/Setters
class Books
{
late int _id;
int get id => _id;
set id(int value) {
_id = value;
}
}
【讨论】: