当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。