我有一个可变参数方法,我想充当另一个可变参数方法的代理,但我不知道该怎么做。这是基本代码:
class MyClass {
public function a(...args:*):* {
// other code
b(args);
// other code
}
public function b(...args:*):* {
// do stuff with args
}
}
我正在从 Java 移植代码,其中类型系统知道参数实际上应该是字符串,而不是数组,因此它可以通过直接传递参数来确定调用 b(),并且一切都按照你的方式工作预计。
但是在 ActionScript 中,当通过代理方法调用时,参数数组会被包装到另一个数组中。
因此,当直接调用 b() 时,数组只有一层深。但是当通过 a() 调用 b() 时,数组有两层深。
有谁知道解决这个问题的技巧?
(注意:在我的真实代码中,a() 和 b() 实际上是在不同的类中,我真的不想触及 b() 的实现。我可以将 a() 重写为我心中的内容,但 b() 不应该改变。)