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.19.6/dart-mirrors/ClassMirror/newInstance.html

Spec-Zone.ru

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