Java反射按类型查询注释

富有的

我正在尝试使用以下代码从类中查询批注:

for (final Annotation annotation : annotations) System.out.println(annotation);
final JsonSchema[] schemas = clazz.getAnnotationsByType(JsonSchema.class);

if (schemas.length == 0) {
    throw new IllegalArgumentException("No JsonSchema annotation found.");
}

如果我通过单元测试到达这里,那么我将通过schemas.length测试。如果我通过Maven插件将类的URL传递到URLClassLoader()。loadClass()中,则它将抛出IllegalArgumentException。但是,它也会打印出:

@mypackage.JsonSchema()

即,如果我遍历getAnnotations()的结果,但批注似乎在那儿,但getAnnotationsByType找不到。是什么原因造成的?

编辑:如果我尝试遍历并比较规范名称,然后将其强制转换为JsonSchema,则它不会让我,因为它似乎是com.sun.proxy,它不是JsonSchema的实例。

编辑:我确定是因为它们位于不同的类加载器中。很好的解决方法...

富有的

知道了。

我正在传递URL数组,以供类加载到新的URLClassLoader()。通过将Thread.currentThread()。getContextClassLoader()的第二个参数添加到构造函数中,它似乎将它们加载到相同的ClassLoader中,然后一切都按预期方式工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java反射丢失注释信息

来自分类Dev

Java反射:即使存在注释也未找到

来自分类Dev

检查Java反射类型的类

来自分类Dev

Oracle查询按类型分组

来自分类Dev

按数组类型查询-MongoDB

来自分类Dev

如何使用scala反射按返回类型过滤方法?

来自分类Dev

使用Java反射时的参数类型

来自分类Dev

反射-Java 8-无效的常量类型

来自分类Dev

反射时Java参数类型不匹配

来自分类Dev

Java 8 Lambdas上的反射类型推断

来自分类Dev

使用Java反射获取类数组的类型

来自分类Dev

Java反射-检查方法参数类型

来自分类Dev

GetMethod中的Java反射枚举类型

来自分类Dev

Java反射:获取方法的返回参数的类型

来自分类Dev

使用Java反射获取类数组的类型

来自分类Dev

Java注释会由于反射而使性能变慢吗?

来自分类Dev

通过反射获取有关Java中注释的信息

来自分类Dev

替代方法的注释反射

来自分类Dev

使用Guice按类型和注释检索单例

来自分类Dev

MySQL查询计数与子分类按类型

来自分类Dev

在ElasticSearch中按类型查询是否更好?

来自分类Dev

MongoDB Shell:按类型查询BinData

来自分类Dev

MongoDB Shell:按类型查询BinData

来自分类Dev

按类型分组计算层次查询的总和

来自分类Dev

如何获得按查询分组的类型?

来自分类Dev

如何按类型和日期查询?

来自分类Dev

@保留Java类型检查器注释

来自分类Dev

使用Java 7的类型注释(JSR 308)?

来自分类Dev

使用解析查询基于类型注释地图视图