3

我在 JavaScript 方面经验丰富,但对 Java 很陌生。我试图弄清楚如何将一个函数作为另一个函数的参数传递。在 JavaScript 中,这类似于图 1 中的块。

图1

function fetchData(url, callback) {

    // Do ajax request and fetch data from possibly slow server

    // When the request is done, call the callback function
    callback(ajaxResponse);

}

在Java中有类似的方法吗?我已经搜索了互联网,但发现对新手级别有帮助的东西很少。

4

1 回答 1

2

不幸的是,唯一的等价物(我知道是否)是定义一个接口,您的fetchData方法将接受该接口作为参数,并使用该接口实例化一个匿名内部类。或者,调用该方法的类可以自己实现该接口并使用to 方法fetchData传递自己的引用。this

这是您接受“回调”的方法:

public void fetchData(String url, AjaxCompleteHandler callback){
    // do stuff...
    callback.handleAction(someData);
}

的定义AjaxCompleteHandler

public interface AjaxCompleteHandler{
    public void handleAction(String someData);
}

匿名内部类:

fetchData(targetUrl, new AjaxCompleteHandler(){
    public void handleAction(String someData){
        // do something with data
    }
});

或者,如果你的类实现MyCoolInterface了,你可以像这样简单地调用它:

fetchData(targetUrl, this);
于 2013-11-04T15:30:54.977 回答