dart 如何动态的 new 一个类?

发布于 2022-09-12 22:05:49 字数 106 浏览 12 评论 0

例如我又三个类
ClassA ClassB ClassC
List a = [ClassA, ClassB, ClassC];

我想 a[index]();
但会报错。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咋地 2022-09-19 22:05:49
import 'dart:mirrors';

class Test1 {
  final test = 'test1';
}

class Test2 {}

void main() {
  List<dynamic> list = [Test1, Test2];
  print(list);
  dynamic test = list[0];
  print(Test1);
  print(test);
  // print(test[Symbol('')]);
  ClassMirror classMirror = reflectClass(test);

  print(classMirror);
  var newInstance=classMirror.newInstance(Symbol(''),[]);
  print(newInstance);
  print(newInstance.getField(Symbol('test')));
  print(newInstance.reflectee);
  print(Test1());
  print(newinstance.reflectee.test);
  print(Test1().test);
}

不过flutter下不支持dart:mirrors
https://github.com/flutter/fl...
类似问题中那种动态的newInstance代码应该是实现不了的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文