虽然我尝试将以下代码段与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
答案 0 :(得分:1)
检查一下。 它适用于Java,但通常的问题是,您使用的是错误的库版本。该课程在那里,但版本与预期不同。
http://craftingjava.blogspot.co.uk/2012/08/3-reasons-for-javalangverfiyerror.html
可能你搞乱了Groovy或Java SDK安装。