构造函数的类型不能为 parameters.dart(type_parameter_on_constructor)
Constructors can't have type parameters.dart(type_parameter_on_constructor)
我根据这个 page 使用以下飞镖包 (json_annotation, json_serializable, build_runner) 到 serialize/de-serialize json .
这是我的代码:
import 'package:json_annotation/json_annotation.dart';
part 'car_type.g.dart';
@JsonSerializable()
class CarType {
final int id;
@JsonKey(name: 'type_label')
final String label;
final String description;
CarType(this.id, this.label, this.description);
factory CarType.fromJson(Map<String, dynamic> json) =>
_$CarTypeFromJson(json);
factory List<CarType> CarType.fromJsonList(dynamic jsonArray){
final list = jsonArray as List;
final carTypesList = list.map((i) => CarType.fromJson(i));
return carTypesList;
}
}
因此,对于 factory List<CarType> CarType.fromJsonList(dynamic jsonArray)
,我想传递一个 json 数组来获取 CarType 对象的列表。但是我遇到了一些编译器错误,即:
- 此函数的 return 类型为 'List',但不以 return statement.dart(missing_return)
- 默认构造函数已经是defined.dart(duplicate_constructor_default)
- 构造函数不能有类型 parameters.dart(type_parameter_on_constructor)
知道发生了什么吗?
factory List<CarType> CarType.fromJsonList(dynamic jsonArray){
您不能为构造函数指定 return 类型。
return 类型始终与构造函数所属的 class 类型相同。
只需将 factory
替换为 static
就可以了,
除了 json_serializable
需要一个工厂构造函数,然后您需要删除 return 类型并找到另一种方法来获取 List
.
我根据这个 page 使用以下飞镖包 (json_annotation, json_serializable, build_runner) 到 serialize/de-serialize json .
这是我的代码:
import 'package:json_annotation/json_annotation.dart';
part 'car_type.g.dart';
@JsonSerializable()
class CarType {
final int id;
@JsonKey(name: 'type_label')
final String label;
final String description;
CarType(this.id, this.label, this.description);
factory CarType.fromJson(Map<String, dynamic> json) =>
_$CarTypeFromJson(json);
factory List<CarType> CarType.fromJsonList(dynamic jsonArray){
final list = jsonArray as List;
final carTypesList = list.map((i) => CarType.fromJson(i));
return carTypesList;
}
}
因此,对于 factory List<CarType> CarType.fromJsonList(dynamic jsonArray)
,我想传递一个 json 数组来获取 CarType 对象的列表。但是我遇到了一些编译器错误,即:
- 此函数的 return 类型为 'List',但不以 return statement.dart(missing_return)
- 默认构造函数已经是defined.dart(duplicate_constructor_default)
- 构造函数不能有类型 parameters.dart(type_parameter_on_constructor)
知道发生了什么吗?
factory List<CarType> CarType.fromJsonList(dynamic jsonArray){
您不能为构造函数指定 return 类型。
return 类型始终与构造函数所属的 class 类型相同。
只需将 factory
替换为 static
就可以了,
除了 json_serializable
需要一个工厂构造函数,然后您需要删除 return 类型并找到另一种方法来获取 List
.