Generics 这个泛型类型
我们有一些类层次结构,需要在基类方法中实现,返回类型是this.runtimeType。在Java中,通过使用泛型参数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
类基扩展来完成。在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
这是不久前添加的
在中没有错误,即使启用了强模式
。即使如此,我认为这也是飞镖杀手的一个功能:)