如何为接受 class 本身而不是其对象的函数编写类型签名

How to write a type signature for a function that accept class itself, not its object

我是 Dart 的新手。

我想将 class 而不是 class 对象传递给函数,现在看起来像这样:

void passClass(?? Klass) {
  SomeClass obj = Klass();
  ...
}

我不知道要 ??

谢谢。

您要查找的概念称为 generics

void passClass<T>() {
  ...
}

然后可以这样调用:

passClass<Klass>();

问题是您实际上无法使您的代码以这种方式工作,因为您的代码假定传递的 class 始终具有无参数构造函数。某些 classes 可能是这种情况,但其他人则不然。

如果你想为你传递的 class 创建一个对象,它会变得复杂。您可以在 Creating an instance of a generic type in DART

找到好的解决方案