3

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

代码类似于

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

  ... more code
}

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

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

4

1 回答 1

3

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

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

于 2013-11-04T14:09:19.113 回答