Reflection – Java 8 – invalid constant type

I have a problem with the reflections library

Dependency and in POM Build in 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>

No exclusion is the same effect

Code:

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);

How to load classes using lambda expressions?

Sorry, English:)

Solution

If you see this table, you will see that "constant type: 18" refers to the constant with the tag value of 18_ Invokedynamic property

So the library you use has a class parser that is not Java 8 compatible In fact, this class parser is not even Java 7 compatible because the constant value is specified from Java 7 Since normal java code does not use this feature in Java 7, it has disappeared But when with different JVM programming languages, it may even fail with Java 7

An item in the Bug Tracker of reflections describes your problem At the bottom, you will find a notification:

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>