如何在Dart中专门化(重写)类字段?
我想在Dart 2中扩展或实现如何在Dart中专门化(重写)类字段?,dart,dart-sdk,Dart,Dart Sdk,我想在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>
类时专门化字段(覆盖)
参见代码:
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;
}
抽象类数据库{
字符串id;
名单b;
}
抽象类Bbase{
字符串id;
}
A类实现Abase{
字符串id;
字符串名;
列出b类;/'A.b类='('(列表)→ void')不是对'Abase.bbases='('(列表)的有效重写→ 无效”)。
}
类实现Bbase{
字符串id;
}
class-Abase
具有通用字段List-bbase
,在class-A
中,我想用List-bbase
专门化此字段
但这是不可能的。此错误出现在分析器
或构建运行程序
上:
“A.bbases=”(”(列表)→ void')不是的有效重写
'Abase.bbases='('(列表)→ 无效”)
有没有理由不接受这种专业化的领域
是否有其他方法专门化扩展上的字段
或
实现
您必须使用泛型:
abstract class Abase<T extends Bbase> {
String id;
List<T> bbases;
}
abstract class Bbase {
String id;
}
class A implements Abase<B> {
String id;
String name;
List<B> bbases;
}
class B implements Bbase {
String id;
}
抽象类数据库{
字符串id;
名单b;
}
抽象类Bbase{
字符串id;
}
A类实现Abase{
字符串id;
字符串名;
名单b;
}
类实现Bbase{
字符串id;
}
您可以使用泛型,但我发现您的代码太混乱,无法进行实际实现。类似于抽象类Abase{String id;List bbase;}
和类A实现Abase{
泛型的方法就是这样。太好了!太好了,这就是我想要的。