gpt4 book ai didi

java - Google Guava getTopLevelClasses 返回空集

转载 作者:行者123 更新时间:2023-12-01 17:50:48 24 4
gpt4 key购买 nike

我在网上查了很多资料都没有结果。我试图使用 Guava 获取我的包中的所有类,但它的行为不符合预期。它总是返回一个空集,使得无法对给定的结果执行任何操作。系统变量可能有问题,或者有其他障碍吗?

这是我的一些代码。

        String packageName = "me.travja.package";
ImmutableSet<ClassPath.ClassInfo> root = null;
try {
System.out.println(ClassPath.from(getClass().getClassLoader()));
root = ClassPath.from(getClass().getClassLoader()).getTopLevelClasses();//.getTopLevelClassesRecursive(packageName);
} catch (IOException e) {
e.printStackTrace();
}

for (ClassPath.ClassInfo info : root) {


System.out.println(info.getPackageName() + " -- " + info.getSimpleName());
}

它永远不会到达最后一个sout,因为它是空的,但是打印类路径的那个会打印“com.google.common.reflect.ClassPath@33571c14”,这并不是非常有用。但据我所知,这不应该更像我的应用程序目录吗?

感谢您对此的帮助。这个问题困扰我太久了。

编辑:我做了一些挖掘。如果我的文件路径不包含空格,它似乎会按预期工作。我读到一点,这曾经是旧版本中 Guava 的问题,但我什至尝试使用 Maven 并对最新版本的 Guava 进行着色。有什么方法可以解决这个问题,还是我只需要小心我的文件路径中永远没有空格?

最佳答案

经过更多挖掘后,我使用的其他依赖项之一已经遮盖了旧版本的 Guava,这就是我的代码正在使用的。结果就坏了。我使用了反编译器,这样我就可以手动将 ClassPath 类从较新的 Guava 阴影化到我自己的代码中,并将其导入。现在可以完美运行。

关于java - Google Guava getTopLevelClasses 返回空集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60797060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com