當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Dart MirrorsUsed用法及代碼示例

dart:mirrors 庫中MirrorsUsed 類的用法介紹如下。

說明如何使用 "dart:mirrors" 的注釋(實驗)。

當用作庫 L 中 "dart:mirrors" 導入的元數據時,此類說明庫 L 如何使用 "dart:mirrors" 除非被覆蓋。見override

以下文本是非規範性的:

在某些情況下,例如,在縮小 Dart 代碼時,或從 Dart 程序生成 JavaScript 代碼時,輸出的大小和性能可能會因使用反射而受到影響。在這些情況下,告訴編譯器使用什麽會產生重大影響。

示例用法:

@MirrorsUsed(symbols: 'foo')
import 'dart:mirrors';

class Foo {
  noSuchMethod(Invocation invocation) {
    print(MirrorSystem.getName(invocation.memberName));
  }
}

main() {
  new Foo().foo(); // Prints "foo".
  new Foo().bar(); // Might print an arbitrary (mangled) name, "bar".
}

有關 MirrorsUsed 構造函數參數的詳細說明,請參見 symbolstargetsmetaTargetsoverride 的注釋。

dart:mirrors 的導入可能有多個 MirrorsUsed 注釋。這對於指定特定庫的覆蓋特別有用。例如:

@MirrorsUsed(targets: 'foo.Bar', override: 'foo')
@MirrorsUsed(targets: 'Bar')
import 'dart:mirrors';

將確保來自當前庫和庫foo 的目標Bar 可用於反射。另見override

注釋

@Deprecated("No longer has any effect. Will be removed in a later release.")

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 MirrorsUsed class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。