java项目中的所有包
我希望打印出Java项目中所有包中的所有类。例如,假设项目包含java项目中的所有包,java,class,project,Java,Class,Project,我希望打印出Java项目中所有包中的所有类。例如,假设项目包含 Package1.Class1 Package1.Class2 Package1.Class3 Package2.Class1 Package2.Class2 我想打印出所有这些包和类。使用下面的代码,我能够列出它们,但只有当我以Package.Class c=new Package.Class()的方式引用它们时 以下是我尝试使用的代码: Package[] pa = Package.getPackages(); for (in
Package1.Class1
Package1.Class2
Package1.Class3
Package2.Class1
Package2.Class2
我想打印出所有这些包和类。使用下面的代码,我能够列出它们,但只有当我以Package.Class c=new Package.Class()的方式引用它们时代码>
以下是我尝试使用的代码:
Package[] pa = Package.getPackages();
for (int i = 0; i < pa.length; i++) {
Package p = pa[i];
System.out.print("\"" + p.getName() + "\", ");
}
Package[]pa=Package.getPackages();
对于(int i=0;i
我该怎么做呢
谢谢大家由于类加载器的动态特性,没有简单的方法
但是,您可以查看反射库:
这将允许您查找当前类路径中的类
使用该库,您可以尝试以下操作:
Reflections reflects = new Reflections("my.project.prefix");
Set<Class<? extends Object>> allClasses =
reflects.getSubTypesOf(Object.class);
Reflections reflects=新的反射(“my.project.prefix”);
设置使用反射,或者解析类路径,将其拆分为单独的文件夹和/或jar文件,遍历每个文件夹和/或jar文件并列出包。但这比使用反射库要复杂得多。什么时候需要它?在运行时或打包之前(比如在编译时)?重复@肯特:我自己也会使用反思库,但我只是想说明还有其他选择。Spring的类路径扫描技术也出现在脑海中。