[英]Java package scanner - find all classes with a given interface
在C#中,您可以轻松地从给定程序集中读取所有类。
我正在寻找Java中的等效功能。 我需要它来自动将EJB bean绑定到我的Guice模块。
不幸的是,Java中似乎没有现成的解决方案。
在我们的项目中,我们使用了一些博客建议的略微修改的方法。 此处描述的解决方案是扫描文件系统和JAR中的类。
如果只想选择实现某些接口的类,则可以执行一些其他检查,例如clazz.isAssignableFrom(MyInterface.class)
。
程序集的Java等效项是JAR文件。 可以使用java.util.jar
的类列出JAR文件的内容。
由于Java类的加载机制非常灵活,并且允许通过HTTP加载的类或动态生成的类之类的东西,因此不再需要一般的机制(例如将所有类都放入一个软件包中),因此不可能知道所有可用的类。
我们在轻量级Java框架Snow中使用了它,并且效果很好。
专家就像
<dependency>
<groupId>com.metapossum</groupId>
<artifactId>metapossum-scanner</artifactId>
<version>1.0.1</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.