当我try 在DART中创建一个构造函数(比如Student(this._name))时,它不能使用私有变量.

我已经try 过使用setter,但它也不起作用.

    class Student{

    var _id;
    var _name;

    Student(this.id, this.name);

    void set id(int id) => _id = id;
    void set name(String name) => _name = name;

    }

推荐答案

This is not supported because it would expose private implementation to the outside.

If you'd rename var _id; to var _userId; you would break code that uses your class just by renaming a private field.
See instead the comment below my answer.

  class Student{

    var _id;
    var _name;

    Student({this._id, this._name}); // error

    void set id(int id) => _id = id;
    void set name(String name) => _name = name;
  }

替代方案

  class Student{

    var _id;
    var _name;

    Student({int id, String name}) : _id = id, _name = name;

    void set id(int id) => _id = id;
    void set name(String name) => _name = name;
  }

Flutter相关问答推荐

在Flutter中为不受约束的小部件制作动画

使用Flutter 提供程序包加载状态应用程序时,在自定义按钮中显示CircularProgressIndicator

创建后检索FiRestore文档ID

本机调试符号包含无效的目录调试符号.目前仅支持Android ABI

为什么当我使用Riverpod更新状态时,列表会被刷新?

使索引[0]在ListViewBuilder中返回字符串1

如何在Dart中允许正则表达式中有一个空格,但允许其他字符为1或更多?

dotenv:未处理的异常:FileNotFoundError的实例

在 Flutter 中使用条件语句设置 ImageProvider Object 类型的背景图像

Dart/Flutter 泛型:类型 '(SearchFilterItemModel) => String' 不是类型 '(SearchFilterItemModel) => String' 的子类型

Flutter屏幕适配 - 在模拟器和真实手机上文本尺寸不同

围绕父组件旋转位置组件

如何将此文本按钮剪辑在堆栈中的圆形头像上方?

切换 Firebase 项目后 Flutter FirebaseAuthException 'configuration-not-found'

Flutter - 根据从第一个 DropdownButtonForm 中 Select 的内容在第二个 DropdownButton 上显示选项

应用程序和应用程序内的 webview 之间的单点登录

对话框打开时如何使背景模糊?

Positioned 的宽度或 SizedBox 的宽度都不适用于堆栈小部件 - Flutter

构建失败 - 无法解析 io.grpc:grpc-core:[1.28.0]. (是的,我已经升级到 mavenCentral())

解密 Modulr 安全令牌