dart - 重定向的构造函数具有不兼容的参数
问题描述
我builtvalue
在我的项目中使用我有一个json
如下所示
{ "status": 1, "msg": "Success", "data": [ { "feeID": "25", "collectionID": "0", "type": 1, "category": "3 Fee", "schemeInfo": { "schemeID": 0, "schemeNo": 0, "schemeTxt": "", "schemeStatus": 1 }, "feeCode": "ISter Fee", "feeShortName": "", "basicAMT": "120000", "scholarshipInfo": { "scholarship": "0", "scholarshipAMT": 0, "scholarshipIDs": [] }, "dueDate": "2018-05-10", "lateFeeInfo": { "lateFeePerDay": "0", "lateDays": 28, "lateFeeAMT": 0 }, "taxInfo": { "tax": "18", "taxAMT": 21600, "taxAddedAMT": 141600 }, "grandAMT": 141600, "status": "2", "dateStatus": "1", "collectionDetailStatus": -1 }, { "feeID": "54", "collectionID": "0", "type": 1, "category": "4th Semester Tuition Fee", "schemeInfo": { "schemeID": 0, "schemeNo": 0, "schemeTxt": "", "schemeStatus": 1 }, "feeCode": "ISion Fee", "feeShortName": "", "basicAMT": "120000", "scholarshipInfo": { "scholarship": "0", "scholarshipAMT": 0, "scholarshipIDs": [] }, "dueDate": "2018-10-30", "lateFeeInfo": { "lateFeePerDay": "0", "lateDays": 28, "lateFeeAMT": 0 }, "taxInfo": { "tax": "18", "taxAMT": 21600, "taxAddedAMT": 141600 }, "grandAMT": 141600, "status": "2", "dateStatus": "1", "collectionDetailStatus": -1 } ], "wallet": { "walletID": "1483", "walletNo": "", "NTB": "25000.00", "WAB": "0.00", "status": "empty" } }
以下是我的模型类使用builtvalue
library fee_model;
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'fee_model.g.dart';
abstract class FeeModel implements Built<FeeModel,FeeModelBuilder> {
FeeModel._();
factory FeeModel([updates(FeeModelBuilder b)]) = _$FeeModel;
@nullable
@BuiltValueField(wireName: 'status')
int get status;
@nullable
@BuiltValueField(wireName: 'msg')
String get msg;
@nullable
@BuiltValueField(wireName: 'data')
BuiltList get data;
@nullable
@BuiltValueField(wireName: 'wallet')
Wallet get wallet;
static Serializer get serializer => _$feeModelSerializer;
}
abstract class FeeData implements Built<FeeData, FeeDataBuilder> {
FeeData._();
factory FeeData([updates(FeeDataBuilder b)]) = _$FeeData;
@nullable
@BuiltValueField(wireName: 'feeID')
String get feeID;
@nullable
@BuiltValueField(wireName: 'collectionID')
String get collectionID;
@nullable
@BuiltValueField(wireName: 'type')
int get type;
@nullable
@BuiltValueField(wireName: 'schemeInfo')
SchemeInfo get schemeInfo;
@nullable
@BuiltValueField(wireName: 'category')
String get category;
@nullable
@BuiltValueField(wireName: 'feeCode')
String get feeCode;
@nullable
@BuiltValueField(wireName: 'feeShortName')
String get feeShortName;
@nullable
@BuiltValueField(wireName: 'basicAMT')
String get basicAMT;
@nullable
@BuiltValueField(wireName: 'scholarshipInfo')
ScholarshipInfo get scholarshipInfo;
@nullable
@BuiltValueField(wireName: 'dueDate')
String get dueDate;
@nullable
@BuiltValueField(wireName: 'lateFeeInfo')
LateFeeInfo get lateFeeInfo;
@nullable
@BuiltValueField(wireName: 'taxInfo')
TaxInfo get taxInfo;
@nullable
@BuiltValueField(wireName: 'grandAMT')
double get grandAMT;
@nullable
@BuiltValueField(wireName: 'status')
String get status;
@nullable
@BuiltValueField(wireName: 'dateStatus')
String get dateStatus;
@nullable
@BuiltValueField(wireName: 'collectionDetailStatus')
int get collectionDetailStatus;
static Serializer get serializer => _$feeDataSerializer;
}
abstract class Wallet implements Built<Wallet,WalletBuilder> {
Wallet._();
factory Wallet([updates(WalletBuilder wb)]) = _$Wallet;
@nullable
@BuiltValueField(wireName: 'walletID')
String get walletID;
@nullable
@BuiltValueField(wireName: 'walletNo')
String get walletNo;
@nullable
@BuiltValueField(wireName: 'NTB')
String get nTB;
@nullable
@BuiltValueField(wireName: 'WAB')
String get wAB;
@nullable
@BuiltValueField(wireName: 'status')
String get status;
static Serializer get serializer => _$walletSerializer;
}
abstract class SchemeInfo implements Built<SchemeInfo,SchemeInfoBuilder>{
SchemeInfo._();
factory SchemeInfo([updates(SchemeInfo si)]) = _$SchemeInfo;
@nullable
@BuiltValueField(wireName: 'schemeID')
int get schemeID;
@nullable
@BuiltValueField(wireName: 'schemeNo')
int get schemeNo;
@nullable
@BuiltValueField(wireName: 'schemeTxt')
String get schemeTxt;
@nullable
@BuiltValueField(wireName: 'schemeStatus')
int get schemeStatus;
static Serializer get serializer =>
_$schemeInfoSerializer;
}
abstract class ScholarshipInfo implements Built<ScholarshipInfo,ScholarshipInfoBuilder> {
ScholarshipInfo._();
factory ScholarshipInfo([updates(ScholarshipInfo si)]) = _$ScholarshipInfo;
@nullable
@BuiltValueField(wireName: 'scholarship')
String get scholarship;
@nullable
@BuiltValueField(wireName: 'scholarshipAMT')
int get scholarshipAMT;
@nullable
@BuiltValueField(wireName: 'scholarshipIDs')
BuiltList get scholarshipIDs;
static Serializer get serializer => _$scholarshipInfoSerializer;
}
abstract class LateFeeInfo implements Built<LateFeeInfo, LateFeeInfoBuilder>{
LateFeeInfo._();
factory LateFeeInfo([updates(LateFeeInfo lfi)]) = _$LateFeeInfo;
@nullable
@BuiltValueField(wireName: 'lateFeePerDay')
String get lateFeePerDay;
@nullable
@BuiltValueField(wireName: 'lateDays')
int get lateDays;
@nullable
@BuiltValueField(wireName: 'lateFeeAMT')
int get lateFeeAMT;
static Serializer get serializer => _$lateFeeInfoSerializer;
}
abstract class TaxInfo implements Built<TaxInfo,TaxInfoBuilder>{
TaxInfo._();
factory TaxInfo([updates(TaxInfo ti)]) = _$TaxInfo;
@nullable
@BuiltValueField(wireName: 'tax')
String get tax;
@nullable
@BuiltValueField(wireName: 'taxAMT')
double get taxAMT;
@nullable
@BuiltValueField(wireName: 'taxAddedAMT')
double get taxAddedAMT;
static Serializer get serializer => _$taxInfoSerializer;
}
我运行了命令flutter packages pub run build_runner build
然后我也收到错误消息redirected construcot has incompatible parameters
我附上了截图
我在课堂上不断收到错误,SchemeInfo,ScholarshipInfo,LateFeeInfo,TaxInfo
但在课堂上没有出现错误Wallet,FeeData,FeeModel
builtvalue
解决方案
正如错误消息所说
factory SchemeInfo([updates(SchemeInfo si)]) = _$SchemeInfo;
应该
factory SchemeInfo([updates(SchemeInfoBuilder si)]) = _$SchemeInfo;
推荐阅读
- javascript - 在我们能够获得视频的视频封面之前必须先缓冲视频吗?
- tinymce - 字体大小工具栏下拉菜单中的 TinyMCE 差异
- amazon-web-services - 使用 boto3 使用新 IAM 用户访问 S3 存储桶
- ruby-on-rails - 由于 mimemagic,Capistrano 部署失败
- php - 语法错误或访问冲突:1118 行大小太大
- flutter - 为什么使用路由时 ChangeNotifierProvider 会从 Widget Tree 中消失?
- git - 合并冲突解决后的 Git 合并问题
- javascript - 用于操作 youtube 视频的 Chrome 扩展程序
- python - 当我在主循环中处理请求时,如何从 django 视图运行异步函数以在后台运行?
- python - 键盘监视器行为