accept()方法都没看到在哪里被调用过,java里实现回调要靠反射吧
在VC++里用的回调会比较多,比如安装钩子链就要用到回调,
C++里因为有函数指针,所以函数指针可以作为一个参数传入方法,在那个方法中必要时可以调用那个传入的方法。

解决方案 »

  1.   

    你自己运行一下就知道accept方法用过了啊.
    当然这个args[0]要有值的啊
      

  2.   

    Inside File.list(FilenameFilter) calls  FilenameFilter.accept(), if filter rule satisfied, file name is add to String[] to be returned.
    Callback is the way passing function as parameter. C/C++ has pointer while Java don't. So Java's Callback is a fake one. passing function in Java is realized by passing Object reference , Inner anoymous or other delegate object. 
    In this example. passing accept() is realized by passing its owner DirFilter object.
      

  3.   

    你看过File.list的内部实现么?很明显是它在调用你的Filter,根据Filter.accept的返回值来判断每一个文件是否符合你的Filter
    回调很简单:你具体实现,人家调用,遵守统一接口。类似于windows的钩子,钩子有函数声明的要求,回调有接口的要求