我正在为一个 Dart 类建模,考虑到新的 null 安全类型。我相信有两种有效的方法来初始化不可为空的属性,从参数计算。
对于此示例,我们将使用 Favorite 类。
此类在构造函数中使用初始化列表。
class Favourite {
int favouriteId;
Favourite({required this.favouriteId});
Favourite.mapFromJson(dynamic json)
: this.favouriteId = json["favouriteId"];
}
这个类使用'late'关键字。
class Favourite {
late int favouriteId;
Favourite({required this.favouriteId});
Favourite.mapFromJson(dynamic json) {
this.favouriteId = json["favouriteId"];
}
}
您什么时候会使用其中一种?使用“迟到”感觉有风险。如果我添加了另一个命名构造函数,编译器不会抱怨“favouriteId”没有被初始化。
还有其他选择吗?
谢谢!