可以将类类型作为变量传递给 Dart 吗?
我正在尝试执行以下操作:
class Dodo
{
void hello() {
print("hello dodo");
}
}
void main() {
var a = Dodo;
var b = new a();
b.hello();
}
在 python 中类似的代码可以正常工作。new a()在 Dart 中,我在抱怨a不是类型时遇到错误。
是否可以将类对象用作变量?如果没有,推荐的解决方法是什么?
可以将类类型作为变量传递给 Dart 吗?
我正在尝试执行以下操作:
class Dodo
{
void hello() {
print("hello dodo");
}
}
void main() {
var a = Dodo;
var b = new a();
b.hello();
}
在 python 中类似的代码可以正常工作。new a()在 Dart 中,我在抱怨a不是类型时遇到错误。
是否可以将类对象用作变量?如果没有,推荐的解决方法是什么?
另一种方法是传递闭包而不是类。然后你可以避免使用镜子。例如
a = () => new Dodo();
...
var dodo = a();
您可以使用镜像 api:
import 'dart:mirrors';
class Dodo {
void hello() {
print("hello dodo");
}
}
void main() {
var dodo = reflectClass(Dodo);
var b = dodo.newInstance(new Symbol(''), []).reflectee;
b.hello();
}
也许它可以写得更紧凑,尤其是new Symbol('') 表达式。
你可以做的是:
const dynamic a = Dodo; // or dynamic a = Dodo;
var b = new a();
b.hello();
这对我来说很好;请享用!