Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 这个泛型类型_Generics_Dart - Fatal编程技术网

Generics 这个泛型类型

Generics 这个泛型类型,generics,dart,Generics,Dart,我们有一些类层次结构,需要在基类方法中实现,返回类型是this.runtimeType。在Java中,通过使用泛型参数类基扩展来完成。在Dart中,它也可以正常工作: class A<This extends A<This>> { This copy() => //... } class B extends A<B> {} A a = new A(); // ok A ab = new B(); // ok B b = new B(); // ok

我们有一些类层次结构,需要在基类方法中实现,返回类型是this.runtimeType。在Java中,通过使用泛型参数
类基扩展来完成。在Dart中,它也可以正常工作:

class A<This extends A<This>> {
  This copy() => //...
}
class B extends A<B> {}

A a = new A(); // ok
A ab = new B(); // ok
B b = new B(); // ok
A类{
此副本()。。。
}
类B扩展了{}
A=新的A();//好啊
A ab=新的B();//好啊
B=新的B();//好啊
但是,尽管您没有抽象的父类:

A a2 = new A().copy(); // Unsound implicit cast from A<dynamic> to A<A<dynamic>>
A a2=新建A().copy();//从A到A的不合理隐式强制转换
当然,我们不能在这里显式地指定泛型参数-它是递归的。这是一种bug,还是在Dart中有其他方法可以做到这一点?

  • (最近在DDC中修复)
  • 这些都是相关问题
我认为这只是强模式中缺少的一个功能

我只知道这个错误

analyzer:
  strong-mode:
    implicit-casts: false
这是不久前添加的


在中没有错误,即使启用了
强模式

即使如此,我认为这也是飞镖杀手的一个功能:)