Я бы хотел специализировать поля (переопределить), когда class
является расширенным или реализовано в Dart 2.
См. Код:
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
или build_runner
:
'A.bbases =' ('(List) → void') не является корректным переопределением
'Abase.bbases =' ('(Список) → void').
- Есть ли причина для того, чтобы не принимать эту специализацию полей?
- Есть ли другой способ специализировать поля на
extends
или
implements