是否可以找到给定包中的所有类或接口?(快速查看例如Package
,它似乎没有.)
我正在寻找一种方法来获取给定类路径目录中的所有资源名称列表,类似于方法List<String> getResourceNames (String directoryName)
.
例如,给定一个路径目录x/y/z
包含文件a.html
,b.html
,c.html
和子目录d
,getResourceNames("x/y/z")
应该返回一个List<String>
包含下列字符串:['a.html', 'b.html', 'c.html', 'd']
.
它应该适用于文件系统和jar中的资源.
我知道我可以用File
s,JarFile
s和URL
s 写一个快速片段,但我不想重新发明轮子.我的问题是,鉴于现有的公共图书馆,实施最快捷的方式是getResourceNames
什么?Spring和Apache Commons堆栈都是可行的.
我需要读取Java包中包含的类.这些类在classpath中.我需要直接从Java程序执行此任务.你知道一个简单的方法吗?
List<Class> classes = readClassesFrom("my.package")
Run Code Online (Sandbox Code Playgroud) 我需要枚举包中的所有类并将它们添加到List中.单个类的非动态版本如下:
List allClasses = new ArrayList();
allClasses.add(String.class);
Run Code Online (Sandbox Code Playgroud)
如何动态地添加包中的所有类及其所有子包?
更新:在阅读了早期答案之后,我试图解决另一个次要问题是绝对正确的,所以让我说明一下.我知道这是可能的,因为其他工具可以做到这一点.在这里查看新问题.
更新:再次阅读本文,我可以看到它是如何被误读的.我想在编译后从文件系统中枚举所有MY PROJECT'S类.