问题
I have a instance of Type
, but I want its fully qualified name. How can I do this? I know I have to use Mirrors (Dart's reflection library).
回答1:
Use the new reflectClass
top-level function from dart:mirrors
.
Here's an example:
import 'dart:html';
import 'dart:mirrors';
class Awesome {
// ...
}
void main() {
var awesome = new Awesome();
Type type = awesome.runtimeType;
ClassMirror mirror = reflectClass(type);
Symbol symbol = mirror.qualifiedName;
String qualifiedName = MirrorSystem.getName(symbol);
query('#name').text = qualifiedName;
}
The qualifiedName
should be something like:
http://127.0.0.1:3030/Users/sethladd/dart/type_name/web/type_name.dart.Awesome
Note, this works in build 21753 or higher. Also, this doesn't currently work in dart2js yet. We plan to support it in dart2js.
来源:https://stackoverflow.com/questions/16109993/how-do-i-get-the-qualified-name-from-a-type-instance-in-dart