java 回调函数实现_Java回调函数(匿名实现类)

回调的使用场景就是在参数还未知的时候对其进行处理,参数在其他地方定义。由于我发现很多项目中若是使用了回调的方式来实现功能,导致代码不易读,尤其是萌新很难看懂回调这种使用技巧,所以有此一文。

回调函数的demo案例如下:package com.jufanshare.demo;

public class CallbackDemo {

public static void main(String[] args) {

testFunction(new CallbackInterface() {

@Override

public void doFun(String text) {

System.out.println(text);

}

});

}

public static void testFunction(CallbackInterface callbackInterface){

callbackInterface.doFun("Hello Callback!");

}

private interface CallbackInterface{

void doFun(String text);

}

}

这段代码的执行结果如下:

6749bfa58bdadda962be7ed5d259ee02.png

你可能不太看得懂这段代码,但是其实很简单,你首先往接口的实现类方向去分析上面那段代码应该就可以理解了,就算理解不了也没关系,我一步步来帮你解析这段代码。

首先,我们定义了一个接口private interface CallbackInterface{

void doFun(String text);

}

这个接口并没有实现类,重点:这个接口作为参数传递到其他函数,如下public static void testFunction(CallbackInterface callbackInterface){

callbackInterface.doFun("Hello Callback!");

}

大家知道,Java面向对象的多态特性,我们在调用testFunction()的时候需要传递一个CallbackInterface接口对象进去,然而接口是不能实例化的,所以不能直接使用new CallbackInterface().

所以只能实例化CallbackInterface的实现类,而我们又没有定义CallbackInterface实现类,只好new一个匿名类,如下:testFunction(new CallbackInterface() {

@Override

public void doFun(String text) {

System.out.println(text);

}

});

这样就可以用回调的方式使用了参数text。

怎么样,是不是这么一解析,感觉Java回调简单了很多呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值