java - 如何在类路径中找到接口(interface)的所有实现?

标签 java reflection

我正在实现一个接口(interface),现在我想在类路径中获取该接口(interface)的所有实现。这是可能的还是我应该做其他事情?

最佳答案

Reflections图书馆会让你这样做(在一定程度上):

Set<Class<? extends SomeClassOrInterface>> subTypes = 
     reflections.getSubTypesOf(SomeClassOrInterface.class);

但是我不推荐这样做。想象一个典型的类路径有 50 个外部 jar,每个都是一个大框架,如 spring、hibernate、aspectj、jsf 等。这将花费很多时间。

如果你想拥有某种插件机制,以便其他人可以实现你的接口(interface)并提供实现的 jar,然后查看 java.util.ServiceLoader

关于java - 如何在类路径中找到接口(interface)的所有实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123095/

相关文章:

带命令的 Java 聊天服务器

java - 如何防止通过反射访问?

java - 如何在java中为类创建动态对象?

java - 反射有什么问题?

java - 在 Android Studio 中添加库依赖

java - 使用 Java 的 Web 服务自动化

dictionary - json解码后去映射结构类型转换

c# - 仅使用类型的类型制作编译的构造函数表达式

java - NETWORK_PROVIDER 未提供位置更新

java - Windows XP 阻止我的程序创建的 zip 文件