我需要将一个函数传递给方法,将它存储在类中可见的一些变量上,并最近执行它(不带参数)。
在ActionScript 3中,它将是:
private var lateCall : Function;
..
function getTheLateCall( o : Function ) : void
{
lateCall = o;
}
...
function someFunction() : void
{
lateCall();
}
答案 0 :(得分:6)
在Java中,您无法传递函数。你可以做的是用方法创建一个接口,并使这个接口成为你的函数的参数:
public interface MyInterface {
void method();
}
public void myFunction(MyInterface itf) {
// store itf reference
}
现在,您可以创建anonmymous接口实现并在调用myFunction时传递它:
myFunction(new MyInterface() {
void method() {
// Your code here
}
});
答案 1 :(得分: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
。但这只是一种做法..