为什么java.lang.VerifyError意味着什么?

时间:2014-07-23 16:58:56

标签: java arraylist groovy verifyerror

虽然我尝试将以下代码段与Groovy in-operator 解释一起使用,但 VerifyError 已经发生。你们有什么想法吗?

代码和控制台输出如下。

class Hello extends ArrayList {
    boolean isCase(Object val) {
        return val == 66
    }

    static void main(args) {
        def myList = new Hello()
        myList << 55
        assert 66 in myList
        assert !myList.contains(66)
    }
}

错误日志:

Exception in thread "main" java.lang.VerifyError: (class: Hello, method: super$1$stream signature: ()Ljava/util/stream/Stream;) Illegal use of nonvirtual function call
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:116)

代码来自主题How does the Groovy in operator work?

更新

Groovy版本:1.8.6 JVM:1.6.0_45供应商:Sun Microsystems Inc.操作系统:Linux

1 个答案:

答案 0 :(得分:1)

检查一下。 它适用于Java,但通常的问题是,您使用的是错误的库版本。该课程在那里,但版本与预期不同。

http://craftingjava.blogspot.co.uk/2012/08/3-reasons-for-javalangverfiyerror.html

可能你搞乱了Groovy或Java SDK安装。