如何构建一个类从地图名为ARGS?

问题描述 投票:2回答:1

比方说,我有这个类:

class Person {
  final int age;
  final String name;

  const Person({
    @required this.age,
    @required this.name,
  });
}

后来呢,我想使用来自外部源的数据来构建这个Person类的一个新实例。

这些数据是Map<String, dynamic> data

如何构建一个新的人,因为我不能data通过直接,因为我使用名为ARGS构造?

当然,我可以这样做:

final p = Person(age: data['age'], name: data['name']);

但是想象一下,有很多很多ARGS这将是一个痛苦的这样做。

dart
1个回答
1
投票

通过创建为此事构造函数:

class Person {
  final int age;
  final String name;

  const Person({
    @required this.age,
    @required this.name,
  });

   Person.fromMap(Map<String, dynamic> map) : age = map['age'], 
       name = map['name'];
}

您还可以分配在构造函数体,如果你愿意的话,这就更清楚,如果你有更多的领域。

© www.soinside.com 2019 - 2024. All rights reserved.