未处理的异常:类型 'List<Widget>' 不是类型转换中类型 'Iterable<MyWidget>' 的子类型
Unhandled Exception: type 'List<Widget>' is not a subtype of type 'Iterable<MyWidget>' in type cast
迁移到 null safety 后,迁移工具将 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;
}
这里有什么问题?
我不知道为什么这个工具决定这样做,但如果你仔细想想,它显然会抛出一个错误。 _sets
是一个 Widget 列表,这意味着它可以包括例如一个 Column、一个 Container 和一个 SetWidget
,因此它不能被转换为一个 SetWidget 可迭代对象。
是getMap()
SetWidget
class中的一个方法吗?如果是,您可以将 List<Widget>
更改为 List<SetWidget>
并删除 as Iterable<SetWidget>
吗?希望这能解决您的问题。
另外,旁注,这段代码是做什么用的?您是否将列表转换为 Map<String, Function>
,其中字符串只是一个索引?如果是,为什么不使用列表呢?
for (SetWidget widget in _sets)
{
sets.add(widget.getMap)
}
迁移到 null safety 后,迁移工具将 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;
}
这里有什么问题?
我不知道为什么这个工具决定这样做,但如果你仔细想想,它显然会抛出一个错误。 _sets
是一个 Widget 列表,这意味着它可以包括例如一个 Column、一个 Container 和一个 SetWidget
,因此它不能被转换为一个 SetWidget 可迭代对象。
是getMap()
SetWidget
class中的一个方法吗?如果是,您可以将 List<Widget>
更改为 List<SetWidget>
并删除 as Iterable<SetWidget>
吗?希望这能解决您的问题。
另外,旁注,这段代码是做什么用的?您是否将列表转换为 Map<String, Function>
,其中字符串只是一个索引?如果是,为什么不使用列表呢?
for (SetWidget widget in _sets)
{
sets.add(widget.getMap)
}