不,您不能将真实成员添加到课程中.
我说真正的成员,因为你可以使用noSuchMethod()模拟这样的功能.这是一个例子:
@proxy
class A {
final dynamicMethods = <Symbol, Function>{};
noSuchMethod(Invocation i) {
if (i.isMethod && dynamicMethods.containsKey(i.memberName)) {
return Function.apply(dynamicMethods[i.memberName],
i.positionalArguments, i.namedArguments);
}
return super.noSuchMethod(i);
}
}
main() {
final a = new A();
a.dynamicMethods[#sayHello] = () => print('hello');
a.sayHello();
}
Run Code Online (Sandbox Code Playgroud)
在未来,这可能是可能的.请参阅有关镜子的文章的摘录:
我们希望将来支持更强大的反射功能.这些包括镜像构建器,旨在允许程序自己扩展和修改,以及基于镜像的调试API.
归档时间: |
|
查看次数: |
587 次 |
最近记录: |