Если конструктор принимает свои параметры как vararg (...), кажется, невозможно создать подкласс, который просто передаст этот vararg суперклассу.
Есть связанный вопрос с исправлением для этой же ситуации для обычных функций: Оборачивание метода Vararg в 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
Помимо фактического переноса обработки параметров в подкласс или переключения его на отдельный метод инициализатора, кто-нибудь знает, как правильно сделать супер-вызов?