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 VM и доступна только на некоторых платформах.

Классы

ClassMirror
ClassMirror отражает класс языка Dart.
ClosureMirror
ClosureMirror отражает замыкание.
CombinatorMirror
Зеркало комбинатора show/hide, объявленного в зависимости от библиотеки.
Comment
Класс, используемый для кодирования комментариев в качестве метаданных.
DeclarationMirror
DeclarationMirror отражает сущность, объявленную в Dart-программе.
FunctionTypeMirror
FunctionTypeMirror представляет тип функции на языке Dart.
InstanceMirror
InstanceMirror отражает экземпляр объекта языка Dart.
IsolateMirror
IsolateMirror отражает изолированный контекст.
LibraryDependencyMirror
Зеркало импорта или экспорта.
LibraryMirror
LibraryMirror отражает библиотеку языка Dart, предоставляя доступ к переменным, функциям и классам библиотеки.
MethodMirror
MethodMirror отражает функцию, метод, конструктор, геттер или сеттер языка Dart.
Mirror
Mirror отражает некую сущность языка Dart.
MirrorsUsed
Аннотация, описывающая использование «dart:mirrors» (ЭКСПЕРИМЕНТАЛЬНО).
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.18.5/dart-mirrors/dart-mirrors-library.html

Spec-Zone.ru

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