在C#中,您可以轻松读取给定程序集中的所有类。
我正在寻找Java中的等效功能。我需要这个来自动将EJB bean绑定到我的Guice模块。
答案 0 :(得分:4)
不幸的是,Java中似乎没有现成的解决方案。
在我们的项目中,我们使用some blog建议的略微修改的方法。这里描述的解决方案是扫描文件系统和JAR的类。
如果您只想选择实现某个界面的类,您可以执行一些额外的检查,例如clazz.isAssignableFrom(MyInterface.class)
。
答案 1 :(得分:2)
程序集的Java等价物是一个JAR文件;可以使用java.util.jar
中的类列出JAR文件的内容。
没有更普遍的机制(比如获取包中的所有类),因为Java类加载机制非常灵活,允许通过HTTP加载类或动态生成的类,所以不可能知道所有类可用。
答案 2 :(得分:0)
我们在Lightweight Java Framework,Snow中使用它,效果很好。
maven就像
<dependency>
<groupId>com.metapossum</groupId>
<artifactId>metapossum-scanner</artifactId>
<version>1.0.1</version>
</dependency>