Flutter更新后出现List<dynamic>无法赋值给List<int>错误如何解决
错误原因
- 升级Flutter后对应Dart SDK版本同步提升,新版本对泛型类型的校验规则更严格,未明确指定泛型的
List会被默认推断为List<dynamic>,和List<int>属于不同类型,无法直接赋值。 - 你定义的
chord3函数返回值仅标注了List,未指定泛型为List<int>,同时函数第一个参数f未声明类型,不符合强类型校验要求。
修复方法
最稳妥的方案是给函数补全所有类型声明:
// 明确返回值类型为List<int>,同时给参数f指定int类型 List<int> chord3(int f, List<int> s){ List<int> temp = []; temp.add(f); temp.add(1); return temp; }
如果临时需要兼容场景,也可以在赋值时做显式类型转换:
arr = chord3(0, temp[2]) as List<int>;
注意:你当前代码中
chord3的第二个参数s没有被使用,若不需要可直接删除该冗余参数。
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

