gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:55:47 25 4
gpt4 key购买 nike

我有这样一个模型示例:

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以编程方式 - 它不是实例方法,因此没有接口(interface)。静态方法必须显式访问。

(我忽略了 dart:mirrors 因为你可能无法访问这些)。

关于dart - 如何将类传递给方法并在那里创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60617861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com