未处理的异常:类型“List<Widget>”不是类型转换中“Iterable<MyWidget>”类型的子类型
Posted
技术标签:
【中文标题】未处理的异常:类型“List<Widget>”不是类型转换中“Iterable<MyWidget>”类型的子类型【英文标题】:Unhandled Exception: type 'List<Widget>' is not a subtype of type 'Iterable<MyWidget>' in type cast 【发布时间】:2021-11-27 12:37:11 【问题描述】:迁移到空安全后,迁移工具将as Iterable<SetWidget>
添加到我的代码中。但不幸的是我得到了这个错误:
Unhandled Exception: type 'List<Widget>' is not a subtype of type 'Iterable<SetWidget>' in type cast
这是代码:
final List<Widget> _sets = [];
Map getSets()
Map sets = ;
int k = 0;
for (SetWidget set in _sets as Iterable<SetWidget>)
sets.putIfAbsent(k.toString(), () => set.getMap());
k++;
return sets;
这里有什么问题?
【问题讨论】:
【参考方案1】:我不知道为什么该工具决定这样做,但如果你仔细想想,它显然会引发错误。 _sets
是一个 Widget 列表,这意味着它可以包括一个 Column、一个 Container 和一个 SetWidget
,因此它不能转换为 SetWidget 可迭代对象。
getMap()
是 SetWidget
类中的方法吗?如果是,您能否将List<Widget>
更改为List<SetWidget>
并删除as Iterable<SetWidget>
?希望这能解决您的问题。
另外,请注意,这段代码是做什么用的?您是否将列表转换为Map<String, Function>
,其中字符串只是一个索引?如果是,为什么不使用列表来代替?
for (SetWidget widget in _sets)
sets.add(widget.getMap)
【讨论】:
非常感谢!这对我帮助很大:) 也帮了我..谢谢以上是关于未处理的异常:类型“List<Widget>”不是类型转换中“Iterable<MyWidget>”类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
元素类型“List<widget>”不能分配给列表类型“Widget”
Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>'
由于类型问题,Flutter 添加到 List<Widget> 崩溃
参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了啥?小飘飘在这里
SQL 异常未处理 - System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常