如何为接受 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
找到好的解决方案
我是 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
找到好的解决方案