//2 扫描出相关的类
private void doScanner(String scanPackage) {
//scanPackage=com.gupao.demo
//传入com.gupao.demo,获取文件路径
//file:/G:/java架构师3期/02.用300行代码手写提炼Spring的核心原理/课堂源码/gupaoedu-vip-spring-1.0/target/classes/com/gupaoedu/demo
URL url=this.getClass().getClassLoader().getResource("/"+scanPackage.replaceAll("\\.","/"));
//url.getFile() :G:/java架构师3期/02.用300行代码手写提炼Spring的核心原理/课堂源码/gupaoedu-vip-spring-1.0/target/classes/com/gupaoedu/demo
//通过路径名称转换为抽象路径名来创建新的File实例
//classPath:所有层级的路径名称都显示出来
File classPath = new File(url.getFile());
for(File file : classPath.listFiles()){
if(file.isDirectory()){
//file.getName:获取的是路径的最后一个“/”后的名称
doScanner(scanPackage + "." + file.getName());
}else{
if(!file.getName().endsWith(".class")){continue;}
//每个类的包名路径
String className=(scanPackage + "." +file.getName().replace(".class",""));
//放在list集合中
classNames.add(className);
}
}
}
java获取类路径方法
于 2021-04-27 17:42:15 首次发布
该段代码展示了如何从指定的包名开始扫描并加载所有的类文件。它首先将包名转换为文件路径,然后遍历目录,递归处理子目录,并将找到的.class文件对应的类名添加到列表中。
584

被折叠的 条评论
为什么被折叠?



