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。这可能吗?如果我检查参数,type属性是null

List<TypeMirror> types = mir.function.parameters.first.type.typeArguments;
param.forEach((e) => print(e.simpleName));

打印

符号(int)
符号("bool")

相关内容

  • 没有找到相关文章

最新更新