我有类似于这个示例代码的代码(别介意它没有意义):
void foo(Map<int, String> myMap) {
String s = myMap[1];
}
飞镖分析器通过以下警告向我String s = myMap[1];
发出警告:
“字符串?”类型的值 不能分配给“字符串”类型的变量。尝试更改变量的类型,或将右侧类型转换为“字符串”。
我看到这种情况正在发生,因为从地图中检索值可能会导致null
. 为什么以下代码段会给我同样的警告?
void foo(Map<int, String> myMap) {
if (myMap.containsKey(1)) {
String s = myMap[1];
}
}