【问题标题】:Getter/Setter in Flutter using Android StudioFlutter 中的 Getter/Setter 使用 Android Studio
【发布时间】:2019-07-18 03:20:42
【问题描述】:

我正在 Flutter 中制作应用程序,并且为此使用 Android Studio。但是使用alt+insert命令自动生成getter和setter并不能自动生成getter和setter,有什么办法吗?

【问题讨论】:

    标签: android-studio dart flutter


    【解决方案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 工作室中:

    1. 在您声明它的行上右键单击变量名称。
    2. 在 Mac 上单击“显示上下文操作”或 Option + Enter
    3. 然后点击“封装字段”。

    【讨论】:

      【解决方案4】:

      Android Studio 飞镖

      我也遇到了同样的问题,我发现我们必须用下划线 (_TestVariable) 声明我们的私有变量名。

      然后使用快捷键Alt + insert(在Windows上)自动生成Getters/Setters

      class Books
      {
        late int _id;
      
      int get id => _id;
      
        set id(int value) {
          _id = value;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-05
        • 2023-03-07
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多