File[] subs=dir.listFiles(new FileFilter(){
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});
以上这个代码是个匿名内部类的用法,其中内部类中方法一定有个返回值,但这个返回值是返回给谁呢?小弟初学菜鸟,不才,请教!
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});
以上这个代码是个匿名内部类的用法,其中内部类中方法一定有个返回值,但这个返回值是返回给谁呢?小弟初学菜鸟,不才,请教!
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方法
而FileFilter是个interface,那个匿名内部类就是他的实现类。
//返回给方法调用时的参数、
//此处就是listFiles(返回值作为参数)
File[] subs=dir.listFiles(new FileFilter(){
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});