Dart中的基本反射,支持内省和动态调用。html
内省是运行程序能够检查其自身结构的反射子集。例如,一个打印出任意对象的全部成员名称的函数。数据库
动态调用是指在编译时不按字面指定评估代码的能力,例如调用一个其名称做为参数提供的方法(由于它在数据库中查找,或者由用户以交互方式提供)。api
一般,Dart声明的名称使用Symbol类的实例表示。 每当doc讲述一个表示名称的Symbol类的对象时,它就意味着用于构造s的字符串。闭包
文档常常滥用带有Dart伪代码的符号,例如o.x(a),其中o和a被定义为对象;在这些状况下实际意味着o'.x(a')其中o'和a'是分别与o和a绑定的Dart变量。此外,o'和a'被假定为新变量(意味着它们与程序中的任何其余变量不一样)ide
有时文档引用可序列化的对象。当且仅当它是num,bool,String,一个可跨隔离序列化的对象列表,或者带有键和值的Map(这些键和值均可以跨隔离序列化)的实例时,对象才能够跨隔离进行序列化.函数
dart:mirrors库不稳定,其API可能会因用户反馈而略有变化。 该库依赖于平台,所以它具备dart2js和Dart VM的实现。 二者都在开发中,可能还不支持全部操做。编码
ClassMirrorspa
ClassMirror反映了Dart语言类。.htm
ClosureMirror反映了一个闭包. [...]
在库依赖项上声明的show / hide组合器上的镜像。
用于将注释编码为元数据注解的类。
DeclarationMirror反映了Dart程序中声明的某个实体.
FunctionTypeMirror表示Dart语言中函数的类型.
InstanceMirror反映Dart语言对象的实例.
IsolateMirror反映了隔离.
导入或导出声明中的镜像.
LibraryMirror反映了Dart语言库,提供对库的变量,函数和类的访问.
MethodMirror反映Dart语言函数,方法,构造函数,getter或setter.
描述如何使用“dart:mirrors”的注解(实验). [...]
MirrorSystem是用于反映一组关联库的主要接口. [...]
ObjectMirror 是InstanceMirror, ClassMirror, 和 LibraryMirror的公共超接口,表示它们的共享功能. [...]
ParameterMirror反映Dart形式参数声明.
SourceLocation描述Dart源代码中实体的范围.
TypedefMirror表示Dart语言程序中的typedef.
TypeMirror反映Dart语言类,typedef,函数类型或类型变量.
TypeVariableMirror表示泛型类型的类型参数.
VariableMirror反映了Dart语言变量声明.
currentMirrorSystem() → MirrorSystem
返回当前隔离的MirrorSystem.
reflect(Object reflectee) → InstanceMirror
反映一个实例. [...]
reflectClass(Type key) → ClassMirror
反映类声明. [...]
reflectType(Type key, [ List<Type> typeArguments ]) → TypeMirror
反映ke'y表示的类型. [...]