У меня есть метод vararg, который я хотел бы использовать как прокси для другого метода vararg, но я не уверен, как это сделать. Вот основной код:
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 (), массив имеет два уровня глубины.
Кто-нибудь знает хитрость, чтобы обойти это?
(ПРИМЕЧАНИЕ: в моем реальном коде a () и b () фактически находятся в отдельных классах, и я действительно не хочу касаться реализации b () вообще. Я могу переписать a () к моему содержание сердца, но b () не должно меняться.)