黑马程序员技术交流社区

标题: 帮我分析一下这段代码 [打印本页]

作者: 白磊    时间: 2013-5-5 16:30
标题: 帮我分析一下这段代码
        File[] files = f1.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");
                        }
                });
作者: 吴建昆    时间: 2013-5-5 16:46
        File f1 = new File(
                                "C:\\android\\worksapce\\HeiMa\\src\\cn\\heima\\test");
                // 比方说你指定一个工程目录 这里面有java 文件 txt文件
                // 而你只对java 文件感兴趣,那么你可以通过FilenameFilter 
                FilenameFilter filter = new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");//根据名称的扩展名返回真假值 
                                //是java 结尾的就会给加入集合里面
                        }
                };
                File[] files = f1.listFiles(filter);//按照filter的标准返回集合
               
                //可以打印出来看
                for(File curr:files)
                {
                        System.out.println(curr.getAbsolutePath());
                }

编程风格好的代码一行一行十分清楚
作者: 郑雪    时间: 2013-5-5 18:26
楼主这段代码解决的问题是:將指定目录中文件名以“java”结尾的文件筛选出来。

   File[] files = f1.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");
                        }
                });
对这段代码进行解析,这里用到了匿名内部类,等效的代码是这样的:
  1. class SubFilenameFilter extends FilenameFilter{
  2.      public boolean accept(File dir, String name) {
  3.                                 return name.endsWith("java");
  4. }

  5. FilenameFilter fnf = new SubFilenameFilter();
  6. File[] files = f1.listFiles(fnf);
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2