newInstance抽象方法

InstanceMirror newInstance(
  1. Symbol constructorName,
  2. List positionalArguments, [
  3. Map<Symbol, dynamic> namedArguments = const <Symbol, dynamic>{}
])

调用命名构造函数并返回结果的一个镜像。

c为该镜像反射的类,令a1, ..., anpositionalArguments的元素,令k1, ..., kmnamedArguments.keys的元素标识符,令v1, ..., vmnamedArguments.values的元素。

如果constructorName是从空字符串创建的,则此方法将在可以访问c的私有成员的作用域中执行实例创建表达式new c(a1, ..., an, k1: v1, ..., km: vm)

否则,令fconstructorName所表示的构造函数的简单名称。然后此方法将在可以访问c的私有成员的作用域中执行实例创建表达式new c.f(a1, ..., an, k1: v1, ..., km: vm)

在任何情况下

  • 如果表达式计算结果为结果r,则此方法返回调用reflect(r)的结果。
  • 如果评估表达式导致编译错误,则效果与遇到非反射编译错误相同。
  • 如果评估表达式抛出异常e(它没有捕获),则此方法抛出e

实现

InstanceMirror newInstance(
    Symbol constructorName, List<dynamic> positionalArguments,
    [Map<Symbol, dynamic> namedArguments = const <Symbol, dynamic>{}]);