让我说我上了这个课:
class Person {
final int age;
final String name;
const Person({
@required this.age,
@required this.name,
});
}
然后,我想使用来自外部源的数据构造此Person类的新实例。
数据为Map<String, dynamic> data
由于使用命名参数无法将data
直接传递给构造函数,该如何构造一个新的Person?
我当然可以:
final p = Person(age: data['age'], name: data['name']);
但是想像一下,有很多参数很麻烦。
答案 0 :(得分: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'];
}
如果愿意,还可以在构造函数主体中进行赋值,如果您有更多字段,则可以更清楚地说明。