当我尝试使用Student(this._name)
之类的飞镖创建构造函数时,它不适用于私有变量。
我已经尝试过使用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;
}
答案 0 :(得分:3)
不支持此操作,因为会将私有实现暴露给外部。
如果将 var _id;
重命名为var _userId;
,您将通过重命名私有字段来破坏使用类的代码。
请改用我的答案下方的评论。
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;
}