以下代码无法以健全的 null 安全性进行编译,因为可以将 null 传递给初始化不可为 null 的字段myString的构造函数。
class MyClass {
String myString;
MyClass({@required this.myString});
}
Run Code Online (Sandbox Code Playgroud)
我希望在this.myString之后添加一个问号可以解决问题,但事实并非如此,并且会显示另一个编译错误。
默认值对我来说是没有选择的,似乎唯一的其他解决方案是这样的:
class MyClass {
late String myString;
MyClass({@required myString}) {
this.myString = myString;
}
}
Run Code Online (Sandbox Code Playgroud)
在我看来,如果有很多参数,这会降低可读性。是否有更方便的解决方案支持以此进行初始化。在命名构造函数中?