我自己解决了这个问题,但是编译错误没有提供反馈,所以我在这里放弃修复。
代码就像
def aMethod(String param1, String param2)
{
Sql gsql = Sql.newInstance(<init code>)
int hashCode = null
... more code
}
我认为Groovy将int变量包装在一个对象中,但显然并不完全。当我删除int hashcode = null时,一切运行正常。
可能与最近进入Groovy的一些静态编译/优化内容有关
答案 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为此提供的操作,从而再次失去速度优势。