Groovy java.lang.VerifyError - 期望在堆栈上找到整数

时间:2013-11-01 21:10:47

标签: groovy

我自己解决了这个问题,但是编译错误没有提供反馈,所以我在这里放弃修复。

代码就像

def aMethod(String param1, String param2)
{
  Sql gsql = Sql.newInstance(<init code>)
  int hashCode = null

  ... more code
}

我认为Groovy将int变量包装在一个对象中,但显然并不完全。当我删除int hashcode = null时,一切运行正常。

可能与最近进入Groovy的一些静态编译/优化内容有关

1 个答案:

答案 0 :(得分:3)

首先感谢Peter提交https://jira.codehaus.org/browse/GROOVY-6419

自Groovy 1.8以来,

int x = null在Groovy中无效。当时我们做了很大的改变,称为“原始优化”,如果程序主要基于Java原语,它允许Groovy以接近Java的速度运行某些程序。遗憾的是,当涉及到null时,这需要Groovy将int作为int处理。否则我们将无法使用JVM为此提供的操作,从而再次失去速度优势。