当在 Dart 2中扩展或实现a 时,我想专门化字段(覆盖) 。class
见代码:
abstract class Abase {
String id;
List<Bbase> bbases;
}
abstract class Bbase {
String id;
}
class A implements Abase {
String id;
String name;
List<B> bbases; // 'A.bbases=' ('(List<B>) → void') isn't a valid override of 'Abase.bbases=' ('(List<Bbase>) → void').
}
class B implements Bbase {
String id;
}
class Abase
具有通用字段List<Bbase> bbase
,并且在class A
我想用List<B> bbase
.
但这是不可能的。此错误出现在analyzer
or上build_runner
:
'A.bbases=' ('(List) → void') 不是 'Abase.bbases=' ('(List) → void') 的有效覆盖。
- 有理由不接受这种专业化的领域吗?
- 是否有另一种方法可以在
extends
or 上专门化领域implements
?