我有这个课:
class Entry {
final String id;
final List<ListEntry> listEntries;
Entry({this.listEntries}):
id = Uuid().v4();
Entry.withId({this.id, this.listEntries});
}
// create new class instance
var e = Entry();
现在,当我在
e.listEntries
上调用任何方法时,我将得到一个NPE,因为它尚未初始化。如果没有提供构造函数参数,是否可以将其默认设置为空列表?
最佳答案
您可以使用Factory构造函数:
class Entry {
final String id;
final List<String> listEntries;
factory Entry({List<String> listEntries}) {
return Entry._(listEntries ?? []);
}
Entry._(this.listEntries):
id = Uuid().v4();
Entry.withId({this.id, this.listEntries});
}
关于dart - 具有未初始化的最终类变量的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57585310/