001package edu.pdx.cs.joy.reflect; 002 003import edu.pdx.cs.joy.core.FindJavaFiles; 004 005import java.io.*; 006 007/** 008 * This class provides an example of anonymous inner classes. It uses 009 * inner classes to provide implementations of the {@link FileFilter} 010 * and {@link FilenameFilter} interfaces that find all files whose 011 * name ends with <code>.class</code>. 012 * 013 * @see FindJavaFiles 014 * 015 * @author David Whitlock 016 * @version $Revision: 1.2 $ 017 * 018 * @since Spring 2003 019 */ 020public class FindClassFiles { 021 private static void findFiles(File dir) { 022 final String suffix = ".class"; 023 024 File[] classFiles = 025 dir.listFiles(new FilenameFilter() { 026 public boolean accept(File dir, String name) { 027 return name.endsWith(suffix); 028 } 029 }); 030 031 for (int i = 0; i < classFiles.length; i++) 032 System.out.println(classFiles[i]); 033 034 File[] subdirs = 035 dir.listFiles(new FileFilter() { 036 public boolean accept(File file) { 037 return file.isDirectory(); 038 } 039 }); 040 041 for (int i = 0; i < subdirs.length; i++) 042 findFiles(subdirs[i]); 043 } 044}