如果构造函数将其参数作为可变参数(...),则似乎不可能创建一个仅将该可变参数传递给超类的子类。
对于普通函数,有一个与此相同情况的修复相关的问题:Wrapping a Vararg Method in ActionScipt但我无法让它与超级调用一起使用。
基类:
public class Bla
{
public function Bla(...rest)
{
trace(rest[0]); // trace the first parameter
}
}
子类:
public class Blie extends Bla
{
public function Blie(...rest)
{
// this is not working, it will
// pass an array containing all
// parameters as the first parameters
super(rest);
}
}
如果我现在打电话
var b1 = new Bla('d', 'e');
var b2 = new Blie('a', 'b', 'c');
我得到输出
d
a,b,c
我希望它打印出来:
d
a
除了实际将参数的处理移至子类或将其移至单独的初始化方法之外,有谁知道如何正确调用超级调用?