13

メタデータで注釈が付けられた Dart クラスがあります。

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

  String toString() => msg;
}

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

}

Cool注釈が付けられているかどうか、もしそうなら、何が付けられているかを知りたいです。それ、どうやったら出来るの?

4

1 に答える 1

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!
}

詳細については、 ClassMirror#metadataメソッドについてお読みください。

于 2013-06-22T21:14:55.953 に答える