5

在 C# 中,您可以轻松地从给定程序集中读取所有类。

我正在寻找 Java 中的等效功能。我需要它来自动将 EJB bean 绑定到我的 Guice 模块。

4

3 回答 3

4

不幸的是,Java 中似乎没有现成的解决方案。

在我们的项目中,我们使用了一些博客建议的稍微修改的方法。那里描述的解决方案是扫描文件系统和 JAR 中的类。

如果你只想选择实现某个接口的类,你可以做一些额外的检查,比如clazz.isAssignableFrom(MyInterface.class).

于 2010-04-06T11:32:07.000 回答
2

程序集的 Java 等价物是 JAR 文件;JAR 文件的内容可以通过使用java.util.jar.

没有更通用的机制(比如获取一个包中的所有类),因为 Java 类加载机制非常灵活,允许通过 HTTP 加载类或动态生成类,因此不可能知道所有可用的类。

于 2010-04-06T11:28:08.947 回答
0

这是一个, http ://grepcode.com/file/repo1.maven.org/maven2/com.metapossum/metapossum-scanner/1.0.1/com/metapossum/utils/scanner/PackageScanner.java

我们在轻量级 Java 框架 Snow 中使用了它,并且效果很好。

行家就像

<dependency>
   <groupId>com.metapossum</groupId>
   <artifactId>metapossum-scanner</artifactId>
   <version>1.0.1</version>
</dependency>    
于 2013-01-09T18:30:04.773 回答