我有一个用元数据注释的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相关问答推荐

根据 Id 比较两个不同的 List

在Flutter中通过 Function(T) 传递泛型类型

如何防止意外发布私有 pub 包

Flutter ButtonRow 填充

在Dart streams中,listen和forEach有什么区别?

访问用户环境变量

在 Dart 中,是否可以有一个 const 闭包映射?

Flutter有向图.我可以将CustomPainter类与自定义小部件一起使用吗?

在调试和生产模式之间切换

Flutter中不能指定MultiPartFile的内容类型

使用元组解包样式交换两个变量的值

判断Dart中是否提供了可选参数

Flutter 中 ChangeNotifier 的构建器小部件

如何更改Flatter DevTools的默认浏览器?

什么时候在 Dart 中使用 num

dart 中隐式转换运算符的语法是什么?

Dart 是否支持函数式编程?

在 Dart 中创建具有可变数量的参数或参数的函数

如何在 Dart 中定义接口?

如何在 Dart 中生成唯一 id