反思 – Java 8 – 无效的常量类型
|
我有一个
Reflections库的问题.
依赖关系并在pom.xml中构建 <dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.10</version>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.19.0-GA</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
没有排除是一样的效果. 码: URL jarUrl = jarFile.toURI().toURL();
URLClassLoader child = new URLClassLoader(new URL[]{jarUrl},this.getClass().getClassLoader());
ConfigurationBuilder builder = new ConfigurationBuilder()
.addClassLoader(child)
.addUrls(jarUrl)
.setScanners(new SubTypesScanner());
Reflections r = new Reflections(builder);
return r.getSubTypesOf(cls);
如何使用lambda表达式加载类? 对不起,英文:) 解决方法如果您看到 this table,您将看到“常量类型:18”是指标签值为18的CONSTANT_InvokeDynamic属性.
所以你使用的库有一个不是Java 8兼容的类解析器.实际上,这个类解析器甚至不是Java 7兼容的,因为这个常量值是从Java 7指定的.由于普通的Java代码在Java 7中不使用这个特性,所以它已经消失了.但是当与不同的JVM的编程语言,甚至可能会与Java 7失败. 有an item in the bug tracker of Reflections描述你的问题.在底部,您会发现通知:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
