Spec-Zone.ru › Dart 2

dart:mirrors

Метод newInstance

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

Вызывает конструктор с заданным именем и возвращает зеркало результата.

Пусть c — класс, отражённый этим зеркалом, пусть a1, ..., an — элементы positionalArguments, пусть k1, ..., km — идентификаторы, обозначаемые элементами namedArguments.keys, и пусть v1, ..., vm — элементы namedArguments.values.

Если constructorName было создано из пустой строки, то этот метод выполнит выражение создания экземпляра new c(a1, ..., an, k1: v1, ..., km: vm) в области видимости, имеющей доступ к закрытым членам c.

В противном случае, пусть f — простое имя конструктора, обозначаемое constructorName. Тогда этот метод выполнит выражение создания экземпляра new c.f(a1, ..., an, k1: v1, ..., km: vm) в области видимости, имеющей доступ к закрытым членам c.

В любом случае:

  • Если выражение вычисляется в результат r, этот метод возвращает результат вызова reflect(r).
  • Если вычисление выражения приводит к ошибке компиляции, эффект такой же, как если бы произошла ошибка неотражённой компиляции.
  • Если вычисление выражения вызывает исключение e (которое не перехватывается), этот метод выбрасывает e.

Реализация

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

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-mirrors/ClassMirror/newInstance.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API