Javaは、プロジェクトのすべてのパッケージ名とクラス名を出力します

package com.baidu.ueditor;

import java.io.File;
import java.lang.reflect.Method;

/**
 * 可以打印出所有的包名及类名
 */
public class Util {
    public static void main(String[] args) throws Exception {
        String packageName = "";
        // 获取当前项目地址
        File root = new File(System.getProperty("user.dir") + "\\");
        loop(root, packageName);
    }

        public static void loop(File folder, String packageName) throws Exception {
        // 加载当前项目所有文件
        File[] files = folder.listFiles();
        for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
            File file = files[fileIndex];
            if (file.isDirectory()) {
                loop(file, packageName + file.getName() + ".");
            } else {
                listMethodNames(file.getName(), packageName);
            }
        }
    }

    public static void listMethodNames(String filename, String packageName) {
        try {
            String name = filename.substring(0, filename.length() - 5);
            Object obj = Class.forName(packageName + name);
            Method[] methods = obj.getClass().getDeclaredMethods();
            System.out.println(filename);
            for (int i = 0; i < methods.length; i++) {
                System.out.println("\t" + methods[i].getName());
            }
        } catch (Exception e) {
            System.out.println("exception = " + e.getLocalizedMessage());
        }
    }
}

結果:

 

おすすめ

転載: blog.csdn.net/Ciel_Y/article/details/123033195