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

你可以有替代品,一个可以通过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. 但这只是一种方法..

于 2013-05-21T07:38:44.423 回答