是否可以在Dart中将类类型作为变量传递?

我正在尝试做以下事情:

class Dodo
{
  void hello() {
    print("hello dodo");
  }
}

void main() {

var a = Dodo;
var b = new a();
b.hello();

}

在python中,类似的代码可以正常工作。在Dart中,我在new a()处收到一个错误,抱怨a不是一种类型。

可以将类对象用作变量吗?
如果没有,建议的解决方法是什么?

最佳答案

您可以使用mirrors 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('')表达式。

关于dart - 在Dart中将类类型作为变量传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23094392/

10-11 08:48