词汇表:我的意思是多级符号就像#Dummy.bar而不是像#bar这样的单级。不知道什么是更好的名字,对不起。
符号非常漂亮。我能做到:
class Foo {
static String hello() => "Said hello!";
}
ClassMirror clMir = reflectType(Foo) as ClassMirror();
print(clMir.invoke(#hello, []));
打印说你好!。太好了!
但是一个人不能这样做:
class Bar{
static final Bar bar = new Bar();
}
ClassMirror clMir = reflectType(Bar) as ClassMirror();
print(clMir.invoke(#bar.hello, []));
这会失败。
此外,我还没有找到一个可以获得多级符号反射的地方,例如reflectSymbol(#Dummy.bar)
,并获得InstanceMirror for bar或类似内容。
那么多级符号有用例吗?
答案 0 :(得分:1)
有不同的用例。
它主要代表库名(library foo.bar.baz;
)。镜像系统使用它(例如,参见https://api.dartlang.org/stable/1.20.1/dart-mirrors/MirrorSystem/findLibrary.html)。
其次,镜像系统有时将其用作library.name.ClassName.memberName
之类的“限定名称”来表示确切的类或库成员(https://api.dartlang.org/stable/1.20.1/dart-mirrors/DeclarationMirror/qualifiedName.html)。
在镜像系统之外它并没有那么有用。