dart:mirrors
库中MirrorsUsed.targets
属性的用法介绍如下。
用法:
dynamic
targets
final
反射目标列表。
结合 metaTargets ,这提供了应用此元数据的库所使用的反射目标的完整列表。
以下文本是非规范性的:
目前,还没有关于反射目标是什么的正式说明。非正式地,目标是库、类、方法或字段。
Dart2js 目前支持以下格式来指定目标:
(限定)名称解析为目标,如下所示:
- 如果限定名称与库名称匹配,则匹配的库就是目标。
- 否则,查找名称的最长前缀,使前缀刚好在
.
之前结束并且是库名称。 - 将该库用作当前范围。如果未找到匹配的前缀,请使用当前库,即放置 MirrorsUsed 注释的库。
- 使用
.
作为分隔符将剩余的后缀(如果在步骤 3 中未找到库名称,则为整个名称)拆分为 String 列表。 - 从列表中选择名称与 String 匹配的当前范围内的所有目标。
例如:
library my.library.one;
class A {
var aField;
}
library main;
@MirrorsUsed(targets: "my.library.one.A.aField")
import "dart:mirrors";
MirrorsUsed 注释将库 my.library.one
中的 A
和 aField
指定为目标。这会将类A
标记为反射目标。 aField
的目标规范无效,因为在my.library.one
中没有具有该名称的目标。
请注意,目标中的所有内容也可用于反射。因此,如果将库指定为目标,则该库中的所有类都将成为反射的目标。同样,如果一个类是一个目标,它的所有方法和字段都将成为反射的目标。因此,上例中的aField
也是反射目标。
相关用法
- Dart MirrorsUsed.metaTargets用法及代码示例
- Dart MirrorsUsed.override用法及代码示例
- Dart MirrorsUsed用法及代码示例
- Dart MidiInputMap.clear用法及代码示例
- Dart MidiInputMap.putIfAbsent用法及代码示例
- Dart MimeTypeArray.first用法及代码示例
- Dart MidiInputMap.containsKey用法及代码示例
- Dart MidiInputMap.forEach用法及代码示例
- Dart MidiOutputMap.forEach用法及代码示例
- Dart MidiInputMap.remove用法及代码示例
- Dart MidiOutputMap.containsKey用法及代码示例
- Dart MidiInputMap.containsValue用法及代码示例
- Dart MidiOutputMap.addAll用法及代码示例
- Dart MidiOutputMap.containsValue用法及代码示例
- Dart MidiOutputMap.remove用法及代码示例
- Dart MimeTypeArray.last用法及代码示例
- Dart MidiInputMap.addAll用法及代码示例
- Dart MidiOutputMap.clear用法及代码示例
- Dart MimeTypeArray.length用法及代码示例
- Dart MimeTypeArray.elementAt用法及代码示例
- Dart MidiOutputMap.putIfAbsent用法及代码示例
- Dart MapMixin.containsKey用法及代码示例
- Dart Map.update用法及代码示例
- Dart Match.groups用法及代码示例
- Dart MapEntry.value用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 targets property。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。