问题标签 [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.
java - 你如何使用 ReflectionUtils 来获取包私有方法/字段?
我试图通过这样的反射获取包私有方法/字段:
但它是空的。有没有办法按包私有过滤?
java - 如何扫描在运行时作为字节码加载的 java 类的特定注释?
- 如果一个 java 类在运行时作为字节码加载(例如通过 ASM 库或其他机制),它是否在 java 的类路径上?我没看到。
- 如果它不在java类路径上,如何扫描以这种方式加载的类的所有注释?
我使用谷歌反射和 3-rd 方库的自定义类加载器。
扫描类的工作原理如下:
MyAnnotation - 标记为@Retention(RetentionPolicy.RUNTIME)。以上(在一个类中)由JVM在运行时动态加载。
可以看出,在幕后,Reflections 尝试使用默认静态和上下文的 2 个类加载器来扫描所有 URL。
反射.scan()
更新:我找到了答案你能找到使用反射的包中的所有类吗?说“如果有生成的类或远程交付的类,您将无法发现这些类。” 但是,没有证据。可以请任何人提供更多细节并确认吗?
java - 谷歌对 Websphere 的反思 - 无法打开 url 连接
我有一个项目,我在其中使用 google Reflections 并将该项目部署在 websphere 自由配置文件上。
我的项目有以下代码,Transformer.class 位于依赖 jar 中
但是反射不起作用,出现以下错误:
java - 如何在 Jboss 应用程序中找到具有给定注解的所有方法?
我试图在 Jboss 应用程序中的一堆包中找到使用给定注释注释的所有方法。
这是一些代码:
当我在 jUnit 测试中运行它时,我得到了 32 个方法,而且一切都很顺利。然而,当我实际运行 Web 应用程序时,它发现的方法要少得多。也就是说,它错过了com.myCompany.stripes
路径中的方法,并且我在日志中看到了许多错误。
例如
我在这里想念什么?关于如何解决这个问题的任何想法?
java - 反思 - Java 8 - 无效的常量类型
我对Reflections库有疑问。我正在尝试动态加载所有实现特定接口的类。只要我不在这些类(java 8)中使用 lambda 表达式,一切正常(所有类都已加载)。我尝试升级lib版本但效果相同(java.io.IOException:无效常量类型:18)。
依赖和构建在 pom.xml
不排除是同样的效果。
代码:
如何使用 lambda 表达式加载类?
PS对不起英语:)
java - 使用反射 API 搜索带注释的类的问题
我很难使用反射 API 来查找在运行时使用自定义注释进行注释的类。最终目标是找到项目中使用我的自定义 @Job 注释进行注释的所有类,收集它们,并允许它们中的每一个从一个位置运行,而无需手动将它们添加到页面中。但是,我发现让初始搜索正常工作非常困难,因此我无法继续我的项目。
我目前的方法是使用:
其中“jobs”是包含我正在搜索的所有作业类的包,它将使用自定义 @Job 注释进行注释。“jobs”是我项目中的一个基本包,但我机器上的整体 url 看起来像“.../(project)/app/jobs”。此设置导致搜索一个 url,即“.../(project)/app/”,在配置对象中带有附加过滤器“+jobs.*”。这似乎工作正常,但显然有问题,因为我没有在集合中得到任何类。
如果重要,注释编码为:
注释类与我正在搜索的作业类位于相同的“作业”包中。包含注释的作业定义示例如下:
我找不到需要更改的内容才能使此搜索按预期运行。感谢您的帮助,如果我能进一步澄清任何事情,请告诉我。
编辑:我认为问题与 Play Framework 如何加载其类有关。幸运的是,框架提供了自己的注解搜索功能,我使用了它。根据评论,我在此处列出的代码将起作用,因为您拥有运行它的所有依赖项。随意使用它作为模板,让我知道它是否也适合你。
java - Java 反射 - 寻找具有特定注解及其注解元素的方法
假设我有这个注释类
那么有没有办法查看一个对象,使用 @MethodXY 注释“寻找”方法,其中它的元素 x = 3,y = 2,然后调用它?
这个问题已经在这里使用核心 Java 反射得到了回答。我想知道这是否可以使用Reflections 0.9.9-RC1 API来完成,而不必使用一些 for 循环代码或通过编写一些直接比较方法来迭代方法,在其中我可以使用给定参数作为键或其他东西来搜索方法。
java - 谷歌反射没有解决我在带注释的方法上的类型参数
如果项目在本地的类路径中并且我执行 getClass().getClassLoader(),我有以下代码可以很好地工作。但是,当我尝试从外部 jar 动态加载时,它会失败。
它无法加载 MyType,这是方法参数上的类型,如下所示:
此代码将失败,并显示“org.reflections.ReflectionsException:无法获取名称 MyType 的类型”:
我相信问题出在类加载器上。有没有另一种方法来加载一个罐子,这样它就可以拾取所有类型?
java - Java - 确定从对象的类中实例化对象的位置
假设我有一个名为 的类MyClass
,在这个类中,我想找出实例化 的对象的类名,MyClass
例如:
java - `Class .newInstance()` 抛出带有反射的 java.lang.StackOverflowError
代码:
BaseTab.java:
HomeTab.java:
当调用这个时,我得到:
仅供参考 BaseTab 正在扩展javafx选项卡。
我发现它正在迭代每个类并在出现错误之前创建数百个实例。问题是我的代码哪里出错了,我该如何解决?谢谢。