dart 如何动态的 new 一个类?

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

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

阅读 2.2k
1 个回答
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代码应该是实现不了的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题