当前位置: 代码迷 >> Java相关 >> [求助]FilenameFilter是接口还是类?
  详细解决方案

[求助]FilenameFilter是接口还是类?

热度:84   发布时间:2007-10-16 11:11:03.0
[求助]FilenameFilter是接口还是类?

有点不理解的是FilenameFilter在帮助文档上面是个接口,为什么在这里却可以直接new?
import java.io.*;

public class DirList2{
public static FilenameFilter filter(final String afn){
return new FilenameFilter(){
String fn=afn;
public boolean accept(File dir,String n){
String f=new File(n).getName();
return f.indexOf(fn)!=-1;
}
};
}
public static void main(String[] args){
try{
File path=new File(".");
String[] list;
if(args.length==0)
list=path.list();
else
list=path.list(filter(args[0]));
for(int i=0;i<list.length;i++)
System.out.println(list[i]);
}catch(Exception e){
System.out.println(e.toString());
e.printStackTrace();
}
}
}

搜索更多相关的解决方案: 接口  

----------------解决方案--------------------------------------------------------
FilenameFilter是接口

new FilenameFilter(){
String fn=afn;
public boolean accept(File dir,String n){
String f=new File(n).getName();
return f.indexOf(fn)!=-1;
}
};
这个东西叫做匿名类.
Thinking in JAVA或Core JAVA上都有比较详细的解释.
----------------解决方案--------------------------------------------------------

我知道这是匿名类,但是是接口怎么可能去new呢?这点不是很明白~


----------------解决方案--------------------------------------------------------

匿名类new的是个类,这个类没有名字。实现了FilenameFilter接口。。。


----------------解决方案--------------------------------------------------------
哦~明白了,谢谢指点
----------------解决方案--------------------------------------------------------