我需要将一个函数传递给方法,将它存储在类中可见的某个变量中,然后在最近执行它(不带参数)。
在 ActionScript 3 中,它将是:
private var lateCall : Function;
..
function getTheLateCall( o : Function ) : void
{
lateCall = o;
}
...
function someFunction() : void
{
lateCall();
}
- Java中是否有相同的东西?
在 Java 中,您不能传递函数。你可以做的是创建一个带有方法的接口,并使这个接口成为你的函数的参数:
public interface MyInterface {
void method();
}
public void myFunction(MyInterface itf) {
// store itf reference
}
现在您可以创建匿名接口实现并在调用 myFunction 时传递它:
myFunction(new MyInterface() {
void method() {
// Your code here
}
});
不
你可以有替代品,一个可以通过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. 但这只是一种方法..