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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。