【精简】 Java递归获得指定包下全部类的全类名

2023-12-28 10:30:41

一、获得全类名

    public static List<String> getClassPaths(String packageName) {
        List<String> classPaths = new ArrayList<>();
        String packagePath = packageName.replace(".", "/");
        File packageDir = new File(Thread.currentThread().getContextClassLoader().getResource(packagePath).getPath());
        File[] files = packageDir.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    classPaths.addAll(getClassPaths(packageName + "." + file.getName()));
                } else if (file.isFile()) {
                    String name = packageName + "." + file.getName();
                    classPaths.add(name.substring(0, name.length()-6));
                }
            }
        }
        return classPaths;
    }

二、该方法的使用示例

List<String> classPaths = getClassPaths("com.interfaces.dto");

返回值为 com.interfaces.dto.MyClass 这种全类名格式的字符串

文章来源:https://blog.csdn.net/z2742431760/article/details/135260184
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。