问题
I have a Dart class that is annotated with metadata:
class Awesome {
final String msg;
const Awesome(this.msg);
String toString() => msg;
}
@Awesome('it works!')
class Cool {
}
I want to see if Cool
was annotated, and if so, with what. How do I do that?
回答1:
Use the dart:mirrors
library to access metadata annotations.
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!
}
To learn more, read about the ClassMirror#metadata method.
来源:https://stackoverflow.com/questions/17255368/how-do-i-access-metadata-annotations-from-a-class