Java中如何定义回调函数
发布时间:2023-07-05 20:50:09
在Java中,可以使用接口或者Lambda表达式来定义回调函数。
1. 使用接口定义回调函数:首先定义一个接口,接口中声明了需要回调的方法。然后,在调用该方法的地方,传入实现了该接口的类的对象,即可实现回调函数的功能。
例如,定义一个回调函数接口Callback:
public interface Callback {
void execute();
}
然后,定义一个类来执行回调函数:
public class Executor {
public void executeCallback(Callback callback) {
// 执行一些任务
// .....
// 调用回调函数
callback.execute();
}
}
接下来,实现Callback接口的类可以作为回调函数使用:
public class CallbackImpl implements Callback {
@Override
public void execute() {
System.out.println("回调函数被调用");
// 执行回调函数中的任务
// .....
}
}
最后,在调用executeCallback方法的地方,传入CallbackImpl对象即可实现回调:
public class Main {
public static void main(String[] args) {
Executor executor = new Executor();
Callback callback = new CallbackImpl();
executor.executeCallback(callback);
}
}
2. 使用Lambda表达式定义回调函数:从Java 8开始,可以使用Lambda表达式来定义回调函数,无需额外定义接口。
例如:
public class Executor {
public void executeCallback(Runnable callback) {
// 执行一些任务
// .....
// 调用回调函数
callback.run();
}
}
然后,在调用executeCallback方法的地方,直接使用Lambda表达式定义回调函数:
public class Main {
public static void main(String[] args) {
Executor executor = new Executor();
executor.executeCallback(() -> {
System.out.println("回调函数被调用");
// 执行回调函数中的任务
// .....
});
}
}
以上就是在Java中定义回调函数的两种方式:使用接口和使用Lambda表达式。根据实际情况选择适合的方式来实现回调功能。
