问题标签 [reflections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
701 浏览

java - 反射 API 未显示具有注释的接口

我正在使用 Reflections API 来扫描我的 java 项目并获取所有具有特定注释的类/接口。但是它只是返回类而不是接口。

我正在使用以下内容:

注意:它适用于具有路径注释的类。

那么Reflections不支持扫描接口吗?还是我必须编写其他代码?

0 投票
1 回答
2039 浏览

java - 存储库中缺少依赖项(错误 404)

我正在尝试在项目中使用反射-maven插件。

但是,Maven 拒绝编译该项目,因为缺少以下依赖项:

我检查了 Maven 中央存储库。那里缺少依赖项(错误 404)。

如何在没有这种依赖的情况下使用反射-maven?

注释:

  • 我公司的规则不允许直接在pom.xml.

  • 必须使用内部 Nexus 。

0 投票
1 回答
825 浏览

java - Java反射中的ConfigurationBuilder,FilterBuilder,Scanners

我在 java 反射中找不到很多关于 ConfigurationBuilder、FilterBuilder、Scanners 的文档。有人可以解释一下有什么用例吗?

0 投票
2 回答
181 浏览

java - 从 Class 获取子类

我有一个项目,其中服务接口使用@Service注释(自定义注释,而不是 Spring)进行注释,并且每个服务(hibernate、mongodb 等)可以有多个实现。

我正在尝试使用反射加载实现类,如下所示:

第一步:加载所有带@Service注解的接口

第 2 步:为每个接口加载所有子类

这是代码:

我得到的编译错误:Type mismatch: cannot convert from Set<Class<? extends capture#8-of ?>> to Set<Class<?>>

根据我的理解 Class<?>,表示类型可以是任何东西,所以我很困惑为什么需要的方法Class<T>不能Class<?>作为参数。

谁能帮我理解为什么会这样?我的方法有什么可能的替代方案吗?提前致谢!

编辑:根据@MGorgon 的评论以及@StriplingWarrior 和@Sotirios Delimanolis 使用反射方法的回答是毫无疑问的。有什么方法可以获取引用类型为类型的类型的子类型Class<?>

0 投票
1 回答
186 浏览

java - 如何使用反射检查使用不同 ClassLoader 加载的类的非静态字段?

我正在使用一个孩子URLClassLoader来加载一个 android.jar,它可以在运行时在 Android SDK (sdk/platforms/) 中找到,然后我使用 Google Reflections 库来检查我加载的新类。但是,似乎使用以下代码,我只能检查静态字段;我还想检查实例字段。(不过我的方法没有问题!)

例如,当上面的代码检查android.view.View时,它只打印以下内容:

但显然还有更多!

我做错了什么?

0 投票
1 回答
499 浏览

java - org.reflections.Reflections 线程安全吗

为了避免创建 org.reflections.Reflections 类的多个实例,我想只创建一个并根据需要重用。有人知道这个类是否是线程安全的吗?

如果它不是线程安全的,我知道我可以使用 Java 的 ThreadLocal 包装器(以防有人对此做出回应)。

0 投票
1 回答
45 浏览

java - 我可以在代码的静态部分中使用谷歌反射来查找子类吗?

我正在尝试建立一个系统,该系统允许我对导出到文本文件的类进行子类化,而无需修改初始类。为此,我正在尝试构建一个回调列表,可以判断它们是否处理特定条目,然后使用该回调获取从文件创建的该类的实例。问题是我得到一个错误

java.lang.NoClassDefFoundError: com/google/common/base/Predicate 当我尝试运行涉及此类的任何内容时。我究竟做错了什么?

}


0 投票
1 回答
1242 浏览

java - 获取 JAVA 中动态加载的类的 .class 文件的路径

我正在寻找实例化和映射给定类型的类路径中的所有类。

我已经使用Reflections库完成了扫描,并获得了已加载的类列表。

然后,当我映射它们时,我正在检查冲突(关键是简单的类名)。

当这种情况发生时,我想抛出一个异常,指出冲突类的完全限定名称,以及它们被加载的路径(例如,JARs可以找到每个类的路径)。

我意识到也可以从内存中加载一个类,但是假设我是从JAR磁盘上加载它,我想知道是否有任何方法可以获取该路径...

请参阅下面的代码片段:

这段代码可以编译——但它不起作用;getClass().getResource(class1.getSimpleName()+".class") 返回 null。我怎样才能得到路径.class

0 投票
0 回答
211 浏览

android - ClassLoader.getResources 返回一个空集

我正在开发一个使用Reflections库来搜索一些带注释的类的 Android 应用程序。

getResources("foo/bar/")在花了一些调试时间试图弄清楚为什么这个库总是为我所做的每个查询返回空集后,我发现该方法ClassLoader返回一个空枚举。

除了由返回的类加载器之外,我还使用了几个类加载器android.context.Context.getClassLoader(),包括DexClassLoaderPathClassLoader

在后两者中,我输入了保存在/data/app.

0 投票
0 回答
110 浏览

maven - 通过项目中的 Maven 插件使用时,Google 反射无法找到类

我在我的 Maven 插件中使用谷歌反射来获取一些带有注释的类。在我的项目中,我只提供了一个 url,它有 3 个键,但它显示扫描的 108 个 url 和 0 个键。可能缺少什么,我使用的是 0.9.9 版本的谷歌反射。