我有一个 的实例Type
,但我想要它的完全限定名称。我怎样才能做到这一点?我知道我必须使用 Mirrors(Dart 的反射库)。
问问题
1571 次
1 回答
9
使用 中的新reflectClass
顶级函数dart:mirrors
。
这是一个例子:
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;
}
qualifiedName
应该是这样的:
http://127.0.0.1:3030/Users/sethladd/dart/type_name/web/type_name.dart.Awesome
请注意,这适用于内部版本 21753 或更高版本。此外,这目前还不能在 dart2js 中使用。我们计划在 dart2js 中支持它。
于 2013-04-19T17:09:09.280 回答