0

関数をメソッドに渡し、クラス内に表示される変数に格納し、最近実行する必要があります (パラメーターなし)。

ActionScript 3 では、次のようになります。

private var lateCall : Function;
..

function getTheLateCall( o : Function ) : void
{
   lateCall = o;
}
...

function someFunction() : void
{
   lateCall();
}
  • Java に等しいものはありますか?
4

2 に答える 2

6

Java では、関数を渡すことはできません。ただし、できることは、メソッドを使用してインターフェイスを作成し、このインターフェイスを関数のパラメーターにすることです。

public interface MyInterface {
    void method();
}

public void myFunction(MyInterface itf) {
   // store itf reference
}

これで、匿名インターフェイスの実装を作成し、myFunction を呼び出すときにそれを渡すことができます。

myFunction(new MyInterface() {
    void method() {
        // Your code here
    }
});
于 2013-05-21T07:40:44.257 に答える
5

いいえ

あなたは代替を持つことができますが、1つは経由することができますinterface

interface IFunc {
   void someFunction();
}
class Func1 implements IFunc
{
   void someFunction(){..}
}
class Func2 implements IFunc
{
   void someFunction(){..}
}
void getTheLateCall(IFunc func)
{
   func.someFunction();
}

したがって、呼び出し元は特定のIFunc実装をインスタンス化し、それを に渡しgetTheLateCallます。しかし、これはそれを行うための1つの方法にすぎません..

于 2013-05-21T07:38:44.423 に答える