是否可以在Java中使用类似于JS回调的东西?

时间:2016-02-24 10:55:50

标签: javascript java callback

是否有可能做某事......

function sum(num1, num2, onComplete)
{
    var result = num1 + num2;
    onComplete(result);
}

(function(){
    sum(3, 5, function(res){alert(res)});
})()

在Java?

我想做的事情就像我之前写的那样,而不需要关心用户的Java版本(通用版本)。

2 个答案:

答案 0 :(得分:3)

您可以使用Java 6/7使用命令模式。

public interface Command<T> {
 public void execute(T t);
}

然后:

public void sum(int num1, int num2, Command<Integer> onComplete) {
    int result = num1 + num2;
    onComplete.execute(result);
}

使用示例:

someObj.sum(1, 2, new Command<Integer>() {

 public void execute(Integer result) {
  System.out.println("Result is: " + result);
 }
});

答案 1 :(得分:1)

在Java 8中,您可以使用Lambdas来执行此操作,在旧版本中,您必须传递包含该函数的类或接口。