dart中是否有一种方法来判断对象是否为空,然后决定获取['data']或什么都不做?
这是错误消息:
在构建Builder时引发了以下NoSuchMethodError: 方法'[]'在null上被调用。 接收者:null 尝试致电:
答案 0 :(得分:1)
回答问题的最简单方法:
final data = list != null ? list[0] : null;
有一种简便的方法可以对任何对象的属性和方法执行相同的操作:a?.b
或a?.b()
将首先对a
进行空检查,然后获取b
或调用分别b
,如果a
为null,则返回null。
这种速记不适用于仅用于属性和方法的下标。
答案 1 :(得分:0)
正在回答如何检查空值。
您可以使用?.
安全地在对象上调用方法。
List<int> badList;
List<int> goodList = [];
badList.add(1); // error because it is null.
badList?.add(1); // no error because it checked for null
goodList.add(1); // no error
goodList?.add(1); // no error
回答列表中的操作方法
据我所知,没有办法在List中进行检查。
List<int> list;
int value = list[0]; // error
您应该使用
List<int> list;
int index = 1;
if (list != null && index < list.length) { // that's how you should check
int value = list[index]; // safe to use list[]
}