假設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個(函數)引用並組成你需要的方式。 –