0
我有一个可变参数方法,我想作为另一个可变参数方法的代理,但我不知道该怎么做。这里是基本的代码:在ActionScript中包装可变参数方法
class MyClass {
public function a(...args:*):* {
// other code
b(args);
// other code
}
public function b(...args:*):* {
// do stuff with args
}
}
我从Java,其中类型系统知道参数实际上应该是字符串,而不是数组移植代码,因此它可以找出调用B()由直接传递参数,一切都符合你的期望。
但是在ActionScript中,通过代理方法调用时,参数数组会被包装到另一个数组中。
因此,当直接调用b()时,该数组只有一个深度。但是,当通过()调用b()时,该数组是深两层。
有没有人知道解决这个问题的技巧? (注意:在我的真实代码中,a()和b()实际上是在不同的类中,我真的不想触及b()的实现。我可以重写a()为我的心脏的内容,但b()不应该改变。)
哇。这是疯狂的。我不知道这是可能的。太感谢了!!! – benjismith 2009-02-04 01:47:52