Flutter 中的 Getter/Setter 使用 Android Studio
Posted
技术标签:
【中文标题】Flutter 中的 Getter/Setter 使用 Android Studio【英文标题】:Getter/Setter in Flutter using Android Studio 【发布时间】:2019-07-18 03:20:42 【问题描述】:我正在 Flutter 中制作应用程序,并且为此使用 android Studio。但是使用alt+insert命令自动生成getter和setter并不能自动生成getter和setter,有什么办法吗?
【问题讨论】:
【参考方案1】:在 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
【讨论】:
你能给我一个例子吗?看来您说得对,但我没有正确理解! 没有getter/setter的例子?我添加了一些代码,但我不知道你想看到什么。 有人想问谁自动生成“getter and setter”。不手动一一写【参考方案2】:我没有清楚地理解您的问题,但请检查这是否有帮助。
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 studio getter 和 setter 的先前更新中不会在颤振中自动创建..这就是我发布这个问题的原因! 现在工作了吗?你能解决这个问题吗? 是的android studio开始自动生成! 有谁知道如何在 Android Studio 中自动格式化 Dart 代码时删除 getter 之间的空白行?【参考方案3】:在 Android 工作室中:
-
在您声明它的行上右键单击变量名称。
在 Mac 上单击“显示上下文操作”或 Option + Enter
然后点击“封装字段”。
【讨论】:
【参考方案4】:Android Studio 飞镖
我也遇到了同样的问题,我发现我们必须用下划线 (_TestVariable) 声明我们的私有变量名。
然后使用快捷键Alt + insert(在Windows上)自动生成Getters/Setters
class Books
late int _id;
int get id => _id;
set id(int value)
_id = value;
【讨论】:
以上是关于Flutter 中的 Getter/Setter 使用 Android Studio的主要内容,如果未能解决你的问题,请参考以下文章