dart - 如何从类访问元数据注释?

标签 dart dart-mirrors

我有一个用元数据注释的 Dart 类:

class Awesome {
  final String msg;
  const Awesome(this.msg);

  String toString() => msg;
}

@Awesome('it works!')
class Cool {

}

我想看看Cool是否被注释了,如果有,用什么注释。我该怎么做?

最佳答案

使用 dart:mirrors 库访问元数据注释。

import 'dart:mirrors';

class Awesome {
  final String msg;
  const Awesome(this.msg);

  String toString() => msg;
}

@Awesome('it works!')
class Cool {

}

void main() {
  ClassMirror classMirror = reflectClass(Cool);
  List<InstanceMirror> metadata = classMirror.metadata;
  var obj = metadata.first.reflectee;
  print(obj); // it works!
}

要了解更多信息,请阅读 ClassMirror#metadata方法。

关于dart - 如何从类访问元数据注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17255368/

相关文章:

dart - Dart 镜像行为是否保证不允许从其他库调用私有(private)方法并且是规范的一部分?

javascript - Dart 支持在正则表达式中使用脚本属性值

flutter - 在一行 3 个文本小部件中用省略号(溢出时)剪辑第一个小部件

android - 每当用户关闭应用程序时,我是否想在应用程序 flutter 上执行某个功能?

plugins - 达特镜的 future

dart - Dart-类来自字符串-类实例来自字符串

dart - Mixin 黯然失色

list - 在 Dart 中,List.from 和 .of、Map.from 和 .of 之间有什么区别?

dart - 是否可以通过名称获取类镜像?

mysql - 有没有办法查询一个类是否包含具有某个已知名称的实例变量?