比方说,我有这个类:
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这将是一个痛苦的这样做。
通过创建为此事构造函数:
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'];
}
您还可以分配在构造函数体,如果你愿意的话,这就更清楚,如果你有更多的领域。