【发布时间】:2021-06-19 13:19:48
【问题描述】:
我正在为一个 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' 没有被初始化。
还有其他选择吗?
谢谢!
【问题讨论】:
-
据我所知,只有在确实需要时才应该使用
late关键字。所以构造函数初始化列表会是一个更好的选择。
标签: flutter dart dart-null-safety