Java查找工程下继承了某父类的文件

来源:互联网 发布:小学古诗大全软件 编辑:程序博客网 时间:2024/05/21 05:38

实例:利用Java实现获取工程下所有继承了Cmd.class这个父类的所有Java文件,打印输出。

详细代码如下:

package common.file;import java.io.File;import common.cmd.Cmd;public class SearchFile4Superclass {public static void main(String[] args) throws Exception {String packageName = "";File root = new File(System.getProperty("user.dir") + "\\src");String type = ".java";Class<?> superClass = Cmd.class;getFile(root, packageName, superClass, type.length());}public static void getFile(File folder, String packageName, Class<?> superClass, int typeLength) throws Exception {File[] files = folder.listFiles();for (int i = 0; i < files.length; i++) {File file = files[i];if (file.isDirectory()) {getFile(file, packageName + file.getName() + ".", superClass, typeLength);} else {outFile(file.getName(), packageName, superClass, typeLength);}}}public static void outFile(String filename, String packageName, Class<?> superClass, int typeLength) {try {String name = filename.substring(0, filename.length() - typeLength);if(Class.forName(packageName + name).getSuperclass()!=null && Class.forName(packageName + name).getSuperclass().getName().equals(superClass.getName())) {System.out.println(filename);}} catch (Exception e) {e.printStackTrace();}}}


0 0