0

別の 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 では、proxy メソッドを介して呼び出されると、引数配列が別の配列にラップされます。

したがって、b() が直接呼び出された場合、配列の深さは 1 レベルのみです。ただし、b() が a() を介して呼び出されると、配列は 2 レベルの深さになります。

これを回避するためのトリックを知っている人はいますか?

(注: 私の実際のコードでは、a() と b() は実際には別のクラスにあり、b() の実装にはまったく触れたくありません。a() は心ゆくまで書き直すことができます。ただし、b() は変更しないでください。)

4

1 に答える 1