可以在Dart中将类类型作为变量传递吗?
我正在尝试做以下事情:
class Dodo
{
void hello() {
print("hello dodo");
}
}
void main() {
var a = Dodo;
var b = new a();
b.hello();
}
在python类似的代码中的可以正常工作。在Dart中,我在new a()
抱怨a
不是类型时收到错误。
是否可以将类对象用作变量? 如果没有,推荐的工作是什么?
答案 0 :(得分:8)
另一种方法是通过传递闭包而不是类。然后你可以避免使用镜子。 e.g。
a = () => new Dodo();
...
var dodo = a();
答案 1 :(得分:3)
您可以使用镜像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('')
表达式。
答案 2 :(得分:-1)
你能做的是:
const dynamic a = Dodo; // or dynamic a = Dodo;
var b = new a();
b.hello();
这对我来说很好;享受!