没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
再谈再谈java回调函数回调函数
个人对于回调函数的理解就是回调函数就是回头再调用的函数,哈哈,下面我们来详细探讨下回调函数。
又遇到了回调函数,这次打算写下来分享一下。
所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数。
再详细点:就是一个函数A,作为参数,传入了另一个函数B,然后被B在某个时间调用。
这里可以有疑问了,既然是一个函数调用另一个函数,可以在函数体里面调用啊,为什么还要把函数作为参数传到另一个函数
里被调用?何况还有一些语言(比如java)不支持把函数作为参数。
对的,确实可以在函数体里调用另一个函数,功能上好像是没差别的,但是这里有一个问题,就是你要调用的这个函数被写死
了,也就是说这样函数B只能调用函数A了,这样如果在另一个情景下,有个与A不同实现的函数C也需要在B的某个时刻被调
用,那怎么办。
下面继续说回调函数,在c/c++里,回调函数可以使用函数指针作为参数被另一个函数调用;在c#里,可以使用委托,如果是事
件方法的话,还有event关键字;在python和javascript里,可以直接把函数当对象传参,这些语言都很好实现回调函数(方法),
可是, java呢? 先说点题外话,自从学了C#,就不喜欢java了,曾经一度打算以后不再用java,可是现实并没有那么理想,我
现在要做android,所以还是不能放下java,而且今天遇到这个回调函数的问题,也是从java里遇到的,我个人觉得,在这个博
客里出现的语言,除了java外,对于回调,都可以既容易,又好理解的实现,但是java,我觉得并不是那样,不然我也不会来
写这篇博客。
好了继续说,关于java中的回调方法的实现。这篇博客的重点就是说java的。 在java中,回调方法是用借用接口来实现的,我
在网上找到一句话:
“把实现某一接口的类所创建的对象的引用,赋值给该接口声明的接口变量,那么该接口变量就可以调用被实现的接口的方
法”。
很绕哈,简单解释下:
有一个接口,接口里有一个方法(这个方法就是要回调的方法):
interface CallBackInterface {
void callBackMethod();
}
我们知道,接口对象不能直接用,因为里面的方法都没有实现。所以要找个类实现这个接口。
所以现在加一个类,实现这个接口:
interface CallBackInterface {
void callBackMethod();
}
class CallBackClass implements CallBackInterface{
@Override
public void callBackMethod() {
System.out.println("hello");
}
}
好了,最后一步:把实现了接口的类的对象赋值给声明的接口变量(我给写进一个方法里了,然后外面加了个类的壳子):
public class CallBackTest {
interface CallBackInterface {
void callBackMethod();
}
class CallBackClass implements CallBackInterface {
@Override
public void callBackMethod() {
System.out.println("hello");
}
}
public void showCallBack() {
CallBackInterface itfs = new CallBackClass();
itfs.callBackMethod();
}
}
资源评论
weixin_38689041
- 粉丝: 1
- 资源: 963
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功