小编Bob*_*bin的帖子

具有所需参数和 null 安全性的命名构造函数

以下代码无法以健全的 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)

在我看来,如果有很多参数,这会降低可读性。是否有更方便的解决方案支持以此进行初始化在命名构造函数中?

dart flutter dart-null-safety

7
推荐指数
2
解决办法
6850
查看次数

标签 统计

dart ×1

dart-null-safety ×1

flutter ×1