如何将类传递给方法并在那里创建它

  • 本文关键字:方法 在那里 创建 dart
  • 更新时间 :
  • 英文 :


我有这样一个模型的例子:

class BirthdayModel {
List birthdays;
BirthdayModel({
@required this.birthdays,
});
factory BirthdayModel.fromJson(json){
return BirthdayModel(birthdays: json['data']);
}
Map<String, dynamic> toJson() {
return {
'birthdays': birthdays,
};
}
}

我想将多个模型转换为一种方法:

exampleMethod(model: BirthdayModel);

然后在此方法中调用传递类的构造函数或方法

exampleMethod(@required model){
return model.fromJson(data);
}

有可能做到这一点吗?

不是你写它的方式。

不能将作为参数传递。即使是类型参数也只传递类型,因此不能以这种方式使用静态成员。

你能做的是:

T exampleMethod<T>(T createModelFromJson(dynamic json)){
return createModelFromJson(data);
}

并称之为:

var birthday = exampleMethod(BirthdayModel.fromJson);

无法通过编程方式访问fromJson-它不是实例方法,因此没有接口。必须显式访问静态方法。

(我忽略dart:mirrors,因为您可能无法访问它们(。

相关内容

  • 没有找到相关文章

最新更新