Метод newInstance
Вызывает конструктор с заданным именем и возвращает зеркало результата.
Пусть 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