コンストラクターがそのパラメーターを vararg (...) として受け取る場合、その vararg をスーパークラスに渡すだけのサブクラスを作成することは不可能のようです。
通常の関数のこの同じ状況の修正に関する関連する質問があります: ActionScipt で Vararg メソッドをラップしますが、それをスーパー コールで動作させることはできません。
基本クラス:
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
パラメータの処理を実際にサブクラスに移動するか、別の初期化メソッドにシフトする以外に、スーパーコールを正しく取得する方法を知っている人はいますか?