File[] subs=dir.listFiles(new FileFilter(){
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});
以上这个代码是个匿名内部类的用法,其中内部类中方法一定有个返回值,但这个返回值是返回给谁呢?小弟初学菜鸟,不才,请教!

解决方案 »

  1.   


        public File[] listFiles(FileFilter filter) {
    String ss[] = list();
    if (ss == null) return null;
    ArrayList v = new ArrayList();
    for (int i = 0 ; i < ss.length ; i++) {
        File f = new File(ss[i], this);
        if ((filter == null) || filter.accept(f)) {
    v.add(f);
        }
    }
    return (File[])(v.toArray(new File[v.size()]));
        }看一下listFiles的源码就明白了listFiles方法会调用FileFilter的accept方法
      

  2.   

    dir.listFiles(这里需要一个FileFilter)
    而FileFilter是个interface,那个匿名内部类就是他的实现类。
      

  3.   


    //返回给方法调用时的参数、
    //此处就是listFiles(返回值作为参数)
    File[] subs=dir.listFiles(new FileFilter(){
    public boolean accept(File pathname) {
    return pathname.isDirectory();
    }
    });