欢迎访问宙启技术站
智能推送

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表达式。根据实际情况选择适合的方式来实现回调功能。