请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

翔仔老师帮忙看个递归的问题

private static void extractClassFile(Set<Class<?>> classSet, File directory, String packageName) {
		//1、递归终止条件
		if (!directory.isDirectory()) {
			return;
		}
		//2、遍历文件名,只添加目录和以.class结尾的文件名
		String[] fileNames = directory.list((dir, name) -> {
			if (dir.isDirectory()) {
				return true;
			} else if (name.endsWith(".class")) {
				return true;
			}
			return false;
		});
		//3、遍历这些子文件,如果是目录则递归,否则直接加载(上一步已经把非.class结尾的给过滤掉了)
		for (String fileName : fileNames) {
			File file = new File(directory, fileName);
			if (file.isDirectory()) {
				extractClassFile(classSet, file, packageName + "." + fileName);
			} else {
				loadClass(packageName + "." + fileName, classSet);
			}
		}
	}

测试的结果跟老师的代码一样(我写的应该也是可行的),只是感觉这样写对我来说更清晰理解。但是涉及到递归,我不知道怎样调试,确保自己的一定是正确的,老师能帮忙看看吗。

正在回答

1回答

翔仔 2020-07-16 23:01:36

慕哥好,这个我看了哈,没问题的,同学调试的时候,可以直接打印packageName + "." + fileName  和你的目录结构对比一下,看看是否全对即可:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕哥6062902 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2020-07-16 23:07:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信