本帖最后由 gerenvip 于 2013-4-22 08:46 编辑
给你举例说明一下吧。- public static void listDemo2()
- {
- File dir = new File("d:\\java\\day20");
- <font color="red">String[] arr = dir.list(new FilenameFilter(){
- public boolean accept(File dir,String name)
- {
- //System.out.println("dir:"+dir+" name:"+name);
- return name.endsWith(".java");
- }
- });//</font>匿名内部类
- System.out.println("len:"+arr.length);
- for(String name : arr)
- {
- System.out.println(name);
- }
- }
复制代码 上面这个代码是毕老师视频中的演示示例。实现的功能是查找指定目录中所有java文件。需要使用
list(FilenameFilter filter)方法,但是方法需要传递一个FilenameFilter接口的实例。
其实不想使用匿名内部类的话,完全可以单独定义一个类实现接口FilenameFilter,然后new一个对象,传递到
list(FilenameFilter filter)方法中,但是这个接口中仅有一个方法accept。这时如果使用匿名内部类就显得十分轻便,如楼上所说的,给懒人使用的,哈哈,其实在适当的时候使用匿名内部类给人清晰简洁的感觉。
希望能帮到你
|