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

Set*_*add 13 dart dart-mirrors

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

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

  String toString() => msg;
}

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

}
Run Code Online (Sandbox Code Playgroud)

我想知道是否Cool有注释,如果有,请注意.我怎么做?

Set*_*add 12

使用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!
}
Run Code Online (Sandbox Code Playgroud)

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