Dart “解决问题的最佳方法”;fromJson";在子类中的函数。飞镖语

Dart “解决问题的最佳方法”;fromJson";在子类中的函数。飞镖语,dart,Dart,我在dart的子类中遇到JSON转换问题。例如: class Person { String firstName; String lastName; Person({ this.firstName, this.lastName }) factory Person.fromJson(Map<String, dynamic> json){ return Person() ..firstName = json['

我在dart的子类中遇到JSON转换问题。例如:

class Person {
   String firstName;
   String lastName;

   Person({
     this.firstName,
     this.lastName
   })

   factory Person.fromJson(Map<String, dynamic> json){
     return Person()
       ..firstName = json['firstName']
       ..lastName = json['firstName'];
   }
}

class User extends Person {
  String token;

  User({
    this.token
  });

   factory User.fromJson(Map<String, dynamic> json){
     return User()
       ..token = json['token']

       // The problem is here. I need dublicate code to fill parent
       // class properties as first & last name of person:

       ..firstName = json['firstName']
       ..lastName = json['firstName'];
   }
}
班级人员{
字符串名;
字符串lastName;
人({
这个名字,
这是我的姓
})
factory Person.fromJson(映射json){
返回人()
..firstName=json['firstName']
..lastName=json['firstName'];
}
}
类用户扩展Person{
字符串标记;
使用者({
这是代币
});
factory User.fromJson(映射json){
返回用户()
..token=json['token']
//问题就在这里。我需要复杂的代码来填充父级
//将属性分类为人员的名字和姓氏:
..firstName=json['firstName']
..lastName=json['firstName'];
}
}
我的问题是在这种情况下如何避免代码重复?

请提供帮助。

您可以在基类上创建一个方法,该方法接受
映射并填充自身的字段,然后从子类调用该方法。但是,我真的建议您使用类似的方法来为您生成此代码。它添加了一个额外的步骤(您需要运行
pub-run-build\u-runner-build
pub-run-build\u-runner-watch
来重新生成代码),但它避免了您必须手工编写所有这些内容。

您可以在基类上创建一个方法,该方法接受
映射
并填充自身的字段,然后从子类调用它。但是,我真的建议您使用类似的方法来为您生成此代码。它添加了一个额外的步骤(您需要运行
pub-run-build\u-runner-build
pub-run-build\u-runner-watch
,以重新生成代码),但它避免了您必须手工编写所有这些内容