Generics Dart泛型-类型不是子类型
我从Dart泛型函数中得到一个运行时错误:Generics Dart泛型-类型不是子类型,generics,dart,subtype,Generics,Dart,Subtype,我从Dart泛型函数中得到一个运行时错误: Widget card = widget.cardBuilder(item); 由此产生: type '(Contact) => Widget' is not a subtype of type '(DeletableItem) => Widget' Contact类定义为 class Contact implements DeletableItem { 然后我有一个方法: class UndoableListView<T
Widget card = widget.cardBuilder(item);
由此产生:
type '(Contact) => Widget' is not a subtype of type '(DeletableItem) => Widget'
Contact类定义为
class Contact
implements DeletableItem
{
然后我有一个方法:
class UndoableListView<T extends DeletableItem>
{
List<T> children;
final Widget Function(T item) cardBuilder;
类UndoableListView
{
列出儿童名单;
最终小部件功能(T项)cardBuilder;
这就是运行时错误发生的地方
Widget buildItem(BuildContext context, int index) {
T item = children[index];
Widget card = widget.cardBuilder(item); <<<<< error thrown here.
Widget buildItem(BuildContext上下文,int索引){
T项=子项[索引];
Widget card=Widget.cardBuilder(item);问题不是Contact
没有实现DeletableItem
,而是整个函数本身具有不同的签名,因为(Contact)=>Widget
无法转换为(DeletableItem)=>Widget
。如果看不到更多的代码,就很难提出修复方案。您能否显示buildItem
正在使用的上下文?代码是从一个相当大的应用程序中提取的。目的是将可删除项的列表传递到列表中,并让列表回调生成器从该项生成一张卡片。我对我的方法感到困惑如果触点类型为Deleteable,则无法强制转换t?