问题描述
我正在开发一个应用程序,该应用程序应该扫描给定类路径中的所有类和接口,并匹配用于 DI 创建的实现类。
@Target(TYPE)
@Retention(RUNTIME)
public @interface RequiresBinding {
}
和一个界面:
@RequiresBinding
public interface LowertoupperSocketCreator {
void createSocket(int lowertoupperPort);
void setIp(InetAddress ip);
DatagramSocket getSocket();
}
问题是我不能提前知道哪些包使用了这些注解,所以我需要扫描所有有这个注解的可用类。
我尝试了以下代码:
Reflections reflections1 = new Reflections("",new TypeAnnotationsScanner(),new SubTypesScanner());
Set<Class<?>> bindingProvidingClasses = reflections1.getTypesAnnotatedWith(ProvidesBinding.class);
症状是我无法找到尚未加载的类:在此示例中,与应用程序的 JAR 位于不同 JAR 中的类(应用程序依赖于该 JAR)不会被扫描。
如果我将 new Reflections("")
命令更改为 new Reflections("com")
,这意味着不是一个完全虚拟的 Reflections
对象,而是一个包含所有以 com
开头的包的对象,确实我能够扫描所有课程。
有没有办法扫描类路径中的所有类,而无需有关相关包或可用 JAR 的任何信息?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)