是否可以在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接口:

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相关问答推荐

异类列表中函数类型不变性的解决方法

当 ng-repeat 嵌套在 AngularDart 中时访问外部 $index

Flutter drawArc() 方法绘制完整的圆而不仅仅是圆弧

从 Future 实例中获取值

AngularDart 可以直接路由到组件吗?

运行时出现Flutter错误:Error waiting for a debug connection: Bad state: No element

如何正确启用/禁用 Flutter 的 Button

InheritedWidget - 在 navigator.push 之后在 null 上调用 getter

Flutter DatePicker 没有day选项

Flutter - 为什么滑块不会在 AlertDialog 中更新?

Dart 捕获 http 异常

flutter命令运行失败

多级异步代码中的 Dart 错误

Flutter Null 安全迁移说Package doesn't exist

如何在dart中获取 map 的键列表?

如何提取dart/Flutter视频元数据

如何在 Visual Studio Code 中禁用fake右括号注释?

Dart 库中part和part of背后的原因是什么?

我应该如何在 Dart 中测试 Future?

如何在 Dart 中生成唯一 id