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



我是Dart的新手。

我想把一个类,而不是一个类对象,传递给一个函数,现在看起来是这样的:

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

我不知道该把什么放在??上。

谢谢。

您正在寻找的概念称为泛型。

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

可以这样称呼:

passClass<Klass>();

问题是,实际上你不能让你的代码以这种方式工作,因为你的代码假设被传递的类总是有一个无参数的构造函数。某些类可能是这样,但其他类则不然。

如果你想创建一个你传递的类的对象,它会变得很复杂。您可以在DART 中创建通用类型的实例中找到好的解决方案

最新更新