有没有更好的方法在 Dart 构造函数中测试 null

Jus*_*ain 4 dart flutter

我正在使用以下构造函数构造一个对象:

 class A {
   int col;
   int row;

   A.fromMap(Map<dynamic, dynamic> data)
       : col = data['col'],
         row = data['row'];
 }

 class B {
   A aObj;
   int objType;
   int count;

   B.fromMap(Map<dynamic, dynamic> data)
       : objType = data['objType'],
         count = data['count'],
         aObj = A.fromMap(data['A']);
 }
Run Code Online (Sandbox Code Playgroud)

问题是,如果我传入的地图没有 aObj 的映射,它就会崩溃。我尝试将分配移到大括号中并测试是否为空:

 if(data['A'] != null) {
    aObj = A.fromMap(data['A']);
 }
Run Code Online (Sandbox Code Playgroud)

这有效。但是我想像在其他数据成员中一样作为快捷构造函数的一部分进行测试。

那可能吗?

cre*_*not 5

我认为如何以一种巧妙的方式防止崩溃是这样的:

aObj = A.fromMap(data['A'] ?? Map())
Run Code Online (Sandbox Code Playgroud)

这将返回一个 Map到您的自定义A.fromMap构造函数的时候data['A']null,这将导致colrownull之后(如果data['A']null),因为在不存在的领域Map