如何在Dart中的类中动态创建方法或setter?
是否可以从该类内部或外部向现有类动态添加实例方法或setter?否,不能向类添加实际成员 我说的是真正的会员,因为你可以用它来模拟这样的功能。这里有一个例子:如何在Dart中的类中动态创建方法或setter?,dart,Dart,是否可以从该类内部或外部向现有类动态添加实例方法或setter?否,不能向类添加实际成员 我说的是真正的会员,因为你可以用它来模拟这样的功能。这里有一个例子: @proxy 甲级{ 最终动态方法={}; noSuchMethod(调用i){ if(i.isMethod&&dynamicMethods.containsKey(i.memberName)){ 返回函数.apply(dynamicMethods[i.memberName], i、 位置参数,即命名参数); } 返回super.noSu
@proxy
甲级{
最终动态方法={};
noSuchMethod(调用i){
if(i.isMethod&&dynamicMethods.containsKey(i.memberName)){
返回函数.apply(dynamicMethods[i.memberName],
i、 位置参数,即命名参数);
}
返回super.noSuchMethod(i);
}
}
main(){
最终a=新a();
a、 动态方法[#sayHello]=()=>打印('hello');
a、 你好;
}
在未来,这也许是可能的。见以下摘录:
我们希望将来支持更强大的反射功能。其中包括镜像构建器(mirror Builder),其设计允许程序扩展和修改自身,以及基于镜像的调试API
Expando可以用来做这个吗?我刚才看了一眼,但不知道它到底能做什么。我想它只是为方法赋值,而不是为方法赋值。这不完全是你要问的,但你可以使用委托或委托列表/映射来实现此功能。