Spec-Zone.ru › Dart 2

Библиотека dart:mirrors

Базовая рефлексия в Dart с поддержкой интроспекции и динамического вызова.

Интроспекция — это подмножество рефлексии, позволяющее выполняющейся программе исследовать собственную структуру. Например, функция, которая выводит имена всех членов произвольного объекта.

Динамический вызов — это возможность вычислять код, который не был задан в явном виде во время компиляции, например вызывать метод, имя которого передано в качестве аргумента (поскольку оно найдено в базе данных или введено пользователем).

Как понимать документацию этой библиотеки

Как правило, имена объявлений Dart представлены экземплярами класса Symbol. Когда в документации говорится об объекте s класса Symbol, обозначающем имя, имеется в виду строка, использованная для создания s.

В документации часто используется условная запись с помощью псевдокода Dart, например o.x(a), где o и a определены как объекты; на самом деле в этих случаях имеется в виду o'.x(a'), где o' и a' — переменные Dart, связанные соответственно с o и a. Кроме того, предполагается, что o' и a' — новые переменные (то есть они отличаются от любых других переменных в программе).

Иногда в документации упоминаются сериализуемые объекты. Объект можно сериализовать между изолятами тогда и только тогда, когда он является экземпляром num, bool или String, списком объектов, сериализуемых между изолятами, либо картой, ключи и значения которой сериализуемы между изолятами.

Статус: нестабильная

Библиотека dart:mirrors нестабильна, и её API может незначительно измениться с учётом отзывов пользователей. Эта библиотека поддерживается только виртуальной машиной Dart и доступна лишь на некоторых платформах.

Классы

ClassMirror
ClassMirror отражает класс языка Dart.
ClosureMirror
ClosureMirror отражает замыкание.
CombinatorMirror
Зеркало комбинатора show/hide, объявленного в зависимости библиотеки.
DeclarationMirror
DeclarationMirror отражает сущность, объявленную в программе Dart.
FunctionTypeMirror
FunctionTypeMirror представляет тип функции в языке Dart.
InstanceMirror
InstanceMirror отражает экземпляр объекта языка Dart.
IsolateMirror
IsolateMirror отражает изолят.
LibraryDependencyMirror
Зеркало объявления импорта или экспорта.
LibraryMirror
LibraryMirror отражает библиотеку языка Dart и предоставляет доступ к её переменным, функциям и классам.
MethodMirror
MethodMirror отражает функцию, метод, конструктор, геттер или сеттер языка Dart.
Mirror
Mirror отражает сущность языка Dart.
MirrorSystem
MirrorSystem — основной интерфейс для рефлексии набора связанных библиотек.
ObjectMirror
ObjectMirror — общий суперинтерфейс для InstanceMirror, ClassMirror и LibraryMirror, представляющий их общую функциональность.
ParameterMirror
ParameterMirror отражает объявление формального параметра Dart.
SourceLocation
SourceLocation описывает диапазон сущности в исходном коде Dart.
TypedefMirror
TypedefMirror представляет typedef в программе на языке Dart.
TypeMirror
TypeMirror отражает класс, typedef, функциональный тип или переменную типа языка Dart.
TypeVariableMirror
TypeVariableMirror представляет параметр типа обобщённого типа.
VariableMirror
VariableMirror отражает объявление переменной языка Dart.

Функции

currentMirrorSystem() → MirrorSystem
Возвращает MirrorSystem для текущего изолята.
reflect(dynamic reflectee) → InstanceMirror
Отражает экземпляр.
reflectClass(Type key) → ClassMirror
Отражает объявление класса.
reflectType(Type key, [List<Type>? typeArguments]) → TypeMirror
Отражает тип, представленный key.

Исключения / ошибки

AbstractClassInstantiationError
Ошибка, возникающая при попытке создать экземпляр абстрактного класса.

© 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/dart-mirrors-library.html

Spec-Zone.ru

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