1
我測試應用程序:dart,如何使用反射獲得泛型類型的方法參數?
import 'dart:mirrors';
class A {
void eventHandlerInt(List<int> x){}
void eventHandlerBool(List<bool> x){}
}
void testMirrors(aFunction){
ClosureMirror mir = reflect(aFunction);
var param = mir.function.parameters.first;
//How to get the Type T of List<T> of the first param?
}
void main() {
var a = new A();
testMirrors(a.eventHandlerInt);
testMirrors(a.eventHandlerBool);
}
我希望能夠找出泛型類型傳遞到testMirrors
方法的第一個參數是什麼,所以在上面的例子中這將是int
然後bool
。這甚至有可能嗎?如果我檢查參數的類型屬性爲空。
怪異,我想也許飛鏢編輯檢查工具提示中有一個錯誤,當它顯示一個有效值時顯示爲空。謝謝。 – 0xor1
我也看到了。我認爲調試器顯示的是本地字段,你得到的是一個getter的返回值。 getter不一定會返回類似名稱字段的值。從反射返回的類型和值有點奇怪,因爲它們是一些特殊的VM類型,並且與僅在Dart中定義的類不同。 –