【发布时间】:2021-11-03 01:37:10
【问题描述】:
为什么这个泛型类会抛出错误?由于T extends DataModel,它应该允许分配DataModel 的实例,但不是。
class TestClass<T extends DataModel> {
List<T> variablesList = [];
late T variable;
void run() {
variablesList.add(DataModel(id: '', name: '', value: '')); // error
variable = DataModel(id: '', name: '', value: ''); // error
}
void run2() {
variablesList.add(DateModelImpl(id: '', name: '', value: '')); // error
variable = DateModelImpl(id: '', name: '', value: ''); // error
}
}
class DataModel {
final String id;
final String name;
final String value;
DataModel({
required this.id,
required this.name,
required this.value,
});
}
class DateModelImpl extends DataModel {
DateModelImpl({
required String id,
required String name,
required String value,
}) : super(id: id, name: name, value: value);
}
错误:
参数类型“DataModel”不能分配给参数类型“T”。
参数类型“DateModelImpl”不能分配给参数类型“T”。
【问题讨论】: