假设T1,T2和T3都具有我想统称的静态函数f1,f2,f3。如何将类型传递给函数并调用其静态方法?
怎么能这样轻松实现?
class T1 {
static f1(i) => i+1;
static f2(i) => i+1;
static f3(i) => i+1;
}
class T2 {
static f1(i) => i+2;
static f2(i) => i+2;
static f3(i) => i+2;
}
class T3 {
static f1(i) => i+3;
static f2(i) => i+3;
static f3(i) => i+3;
}
callGenerically(dynamic type) {
print(type);
type.f1(type.f2(type.f3));
}
main() {
callGenerically(T1);
callGenerically(T2);
callGenerically(T3);
}
这打印T1,所以它得到的类型。只是不知道如何调用静态函数。即使预期f1,f2,f3存在,镜像是否成为选项或要求?
我只想说这 - 总的来说 - 不是一个好的模式。如果你没有这样做(或者这不仅仅是一个语言实验),请尝试选择一种不同的方法,不要使用'dart:mirrors'。 – filiph
为什么在你的场景中有3个'typedef's不起作用?你可以传递3个(函数)引用并组成你需要的方式。 –