- 论坛徽章:
- 0
|
自问自答吧,回调函数我一开始把它的含义理解错了,回调函数其实就是将该函数作为参数传递给某一函数使用,就比如我提出的这个函数public int download_file(String group_name, String remote_filename,
long file_offset, long download_bytes,
DownloadCallback callback) throws IOException, MyException。在这个函数中有一个回调函数,这个回调函数的作用就是用来下载的,下载的字节流到了该DownloadCallback中的OutputStream,而我在这一系列的download_file函数中没有发现这个OutputStream是如何传入到DownloadCallback中,所以我推测是在使用该download_file函数前的时候创建一个OutputStream,将该输出流当作参数传入到该DownloadCallback中,即使用时是new一个DownloadCallback。因为我没有具体使用过该函数,只是使用了不需要回调函数的download方法,所以仅仅是推测。
除此之外,我一开始提出这个问题是因为我对回调函数的概念不是很清楚,目前我所知道的回调函数有两种,一种是这个问题中的,但是这种回调函数就只是把函数作为参数传入而已,从图1中就可以看出这确实是第一种回调函数。另一种是我认为比较切确的回调函数,大概意思就是有类A,他调用了类B的方法z,而方法z又调用了类A的方法x,这个方法x就是回调函数。
然后一般回调函数是用接口声明再实现,我一开始不理解这个DownloadCallback就是因为我以为他是第二种回调函数,然后就怎么绕也绕不出去,可以说是相当菜了。 |
-
捕获.PNG
(14.67 KB, 下载次数: 132)
图1
|