Java回调的四种写法:反射+直接调用+接口调用+Lambda表达式( 二 )

Request 类不变 。Main 类中的 main 方法将实例化一个 CallBackImpl , 然后通过 CallBack 接口传递进去 。
public class Main {public static void main(String[] args) throws Exception {Request request = new Request();System.out.println("[Main]:我开个线程去异步发请求");CallBack callBack = new CallBackImpl();new Thread(() -> {try {request.send(callBack);} catch (Exception e) {e.printStackTrace();}}).start();System.out.println("[Main]:请求发完了 , 我去干点别的");Thread.sleep(100000);}}5. Lambda表达式上述方法已经介绍的差不多了 , 最后我们再介绍一种更加简洁的写法 , 通过使用 Lamda 表达式 , 将不用新增一个 CallBack 接口的实现类 。下面请看改写的 main 方法:
public class Main {public static void main(String[] args) throws Exception {Request request = new Request();System.out.println("[Main]:我开个线程去异步发请求");new Thread(() -> {try {request.send(()-> System.out.println("[CallBack]:处理响应"));} catch (Exception e) {e.printStackTrace();}}).start();System.out.println("[Main]:请求发完了 , 我去干点别的");Thread.sleep(100000);}}我们既不用去新增实现类 , 也不用去实例化 , 只需要传递 Lambda 表达式就可以完成回调了


作者:草捏子
原文链接:https://juejin.im/post/5e4948c7e51d4526c70fa2ec




推荐阅读