1

我正在尝试在eclipse中调试一个简单的groovy项目,代码就这么简单:

def list = [1, 2, 3, 4, 5]
println list.collect { it + 1 }

它执行得很好;只有当我尝试评估这部分时:

list.collect { it + 1 }

在显示视图中(或在编辑器中检查它:shift+crl+i)我收到以下消息:

list.collect { it + 1 }
    Evaluation failed. Reason(s):
        org.codehaus.groovy.runtime.InvokerInvocationException (id=115)

任何人都遇到过这个问题,并且知道如何解决它?万分感谢。

使用 STS 2.5.2 (Eclipse 3.6.1r361)、Groovy 1.7.8、jdk1.6.0_24;Groovy-Eclipse 插件 2.1.2.xx.20110218

顺便说一句,我认为当我使用 sts 2.3.x (eclipse 3.5.x) 时问题并没有出现

4

1 回答 1

1

您不能在显示视图中创建闭合。相反,您需要在 for 循环中写出来。例如-

def newList = []
for (elt in list) {
  newList << elt++
}
print newList

这是一个 vm 限制,因为在后台,闭包由类声明表示。没有简单的方法可以将显示视图生成的类注入到正在运行的应用程序中。

于 2011-02-24T18:54:29.000 回答