一尘不染

如何获得泛型?

flutter

我想获得Type一个通用类的。理想情况下,我想要以下内容:

Type type = MyClass<int>;

但这会引发语法错误。访问此类信息的正确方法是什么?

我知道我可以这样使用runtimeType

final foo = MyClass<int>();
Type type = foo.runtimeType;

但这需要对象的实例。这不适合我的用例。


阅读 188

收藏
2020-08-13

共1个答案

一尘不染

Dart不支持类文字中的类型参数(https://github.com/dart-
lang/sdk/issues/11923)

但是您可以编写一个小的通用帮助程序:

Type typeOf<T>() => T;

main() {
  Type type = typeOf<MyClass<int>>();
  print(type);
}
2020-08-13