问题标签 [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 回答
809 浏览

java - 有人可以帮我了解 org.reflections.Reflections jar 上的 jdk 版本兼容性吗

我是第一次使用 Reflections.jar,所以我想知道以下内容

  • 这个 jar 是否有任何版本兼容性(如上面的 jdk6(或)到 jdk8)
  • 加载类时是否有任何加载顺序(如字母顺序(或)放置在类路径中的 jar 顺序)
0 投票
2 回答
679 浏览

java - Optaplanner - 运行可执行 jar 时出错,但在 eclipse 中工作正常

我将 eclipse 用于我的 optaplanner 项目开发,并且我能够毫无问题地从 eclipse 执行我的代码。为了使这个项目成为可执行文件,我使用 eclipse 导出向导将它导出为 jar 文件。

然后我使用命令从终端运行我的 jar java -jar myOptaPlanner.jar,然后,我得到以下错误

这真的是一个错误还是我导出错误?

更新:我尝试使用导出 jar maven-shade-plugin,在这里我也遇到了同样的错误。

谢谢

0 投票
0 回答
285 浏览

java - org.reflections.Reflections 找不到我的课程(与我编写 lambda 的方式有关)

我正在使用GATK,这是一个用于生物信息学的 java 工具。它在后台使用 org.reflections.Reflections 来加载一些插件。

我的插件已编译但在类路径中时没有被 GATK 找到/加载,并且类似的工具可以正常工作。通过删除部分代码,我将问题缩小到导致我的问题的以下行(请参阅filter):

如果我将上面的行更改为:

如果该行是,它也会被加载:

为什么 ?

0 投票
0 回答
417 浏览

java - 谷歌对 Android 的反思没有获得任何课程

我正在尝试使用Reflections 库来获取使用特定 Java annotation 注释的所有类。

我在 .gradle 文件中包含了 Reflections 库:

但是,该库不适用于我在 Android 上。我没有从 no 和 中得到任何getSubTypesOf点击getTypesAnnotatedWith

我的实施有什么问题吗?

所以问题可能是...... Google-reflections 库是否适用于 Dalvik

0 投票
1 回答
3214 浏览

java - Reflections Library to Find All Classes within a Package

I am using the below code to find all of the Classes within a given package name. This works fine when the code is placed directly into my project. However, calling the service from a Commons Jar I put together isn't returning the data from my project. Can this be achieved? I am using org.reflection.Reflections library.


0 投票
1 回答
61 浏览

java - 如果我使用反射来获取扩展公共类的类,该列表是否也会包含所有递归继承的类?

假设我有

我有以下代码

该集合将classes包含类DE???

0 投票
1 回答
232 浏览

java - Guava ClassPath.from(MyClass.class.getClassLoader()).getTopLevelClassesRecursive("mypackage") 返回 0 个元素

在我的一个项目中,我使用 Guava 从命令行获取类名,然后调用适当的构造函数。用户使用以下内容运行 .bat 文件:

java -jar MyClass.jar 其他类

OtherClass 位于某些包中,例如 mypackage.otherpackage。我想在代码中调用它的构造函数。为了找到构造函数,我使用 Guava:

它在一台计算机上运行完美,但在另一台计算机上根本不起作用,因为ClassPath.from(MyClass.class.getClassLoader()).getTopLevelClassesRecursive("mypackage");返回 0 个元素。我不明白为什么。两台计算机上的代码相同,包相同,类也相同。

0 投票
0 回答
964 浏览

java - 为什么getTypesAnnotatedWith返回没有注释的类

我正在尝试在 Java 中使用类注释,但我有一个奇怪的行为,即返回getTypesAnnotatedWith一个返回的类。getAnnotationnull

是否有某些原因getTypesAnnotatedWith返回没有注释的类?

例如,在我的项目中,以下代码(正确)返回了我注释的类之一:

但是,如果我调用getAnnotation它,结果是null

这是注释:

而且,为了完整起见,这就是我注释类的方式:

0 投票
1 回答
111 浏览

java - 查找接口的所有实现,包括 lambda

我有一个单元测试,可以搜索我的项目并找到特定接口的所有实现。然后对于作为内部类的每个实现,我断言它不捕获外部类。

我使用Reflections库来执行此操作,它确实有效,但现在我需要测试另一个接口,其中许多实现都是 lambdas。遗憾的是,Reflection找不到接口的 lambda 实现。

我可以使用另一种适用于 lambda 的解决方案吗?

0 投票
1 回答
939 浏览

java - 自定义 java gradle 插件中的反射

我有一个包含多个模块的 gradle 项目,每个模块都构建到它自己的 .jar 文件中。我想在自定义 java gradle 插件中使用反射,以生成关于带注释的类/方法的报告。

/build.gradle

/buildSrc/build.gradle

/buildSrc/src/main/java/com/my/plugins/MyPlugin.java

/buildSrc/src/main/java/com/my/plugins/MyTask.java

当我运行gradlew mytask时,我会在 URL 列表中的 build\libs 下看到所有 .jar 文件的列表。

尽管 classLoader 可以成功加载(例如)MyClass,但新的 Reflections() 行会生成许多“无法获取名称的类型”错误,例如:

无法从任何类加载器获取名称 com.my.services.sample.MyClass 的类型

然后,PermitAll Classes 列表正确生成,但 PermitAll 方法列表失败并出现异常,例如:

任务 ':mytask' 执行失败。

> org/dom4j/DocumentException

我已经使用以下内容作为指南,但无法取得任何进一步的进展:

https://discuss.gradle.org/t/gradle-plugin-with-reflections/22690

反射无法获取类类型