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)

否则,设 f 为由 constructorName 表示的构造函数的简单名称。然后此方法将在具有对 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>{}]);