日期:2014-05-20  浏览次数:20654 次

能否实现自定义的回调函数 ??
记得   File   类里有个list()方法   参数是实现了   FilenameFilter的类
  FilenameFilter   里只有一个accepti方法,它可以在list()执行的时候自动调用(也就是回调)

我也想自己写个这样的方法,但是照着写了,却实现不了回调,
高手有没有知道如何写个自己的回调函数的???

------解决方案--------------------
不明白楼主指的“自动调用”是什么意思?

accept()是被list()调用的,你看看list()的源码就知道了,其中有
if (filter.accept(this, names[i]))
这就是在调用accept()方法。

虽然接口中的方法是必须实现的,但它们不一定都会被调用(虽然从设计上看是这样)。做为主调函数,你可以要求你的参数对象实现这些方法,但调不调用它们取决于你的需要。
------解决方案--------------------
回调函数是由系统自己调用的,综合楼上分析,貌似accept不是回调函数吧,普通的函数而已,提供了一个接口,由你自己去定义list的时候那些是可以被 "accept ",跟多态的意思差不多