我正在尝试在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)时问题没有发生。
答案 0 :(得分:1)
您无法在显示视图中创建闭包。相反,您需要在for循环中编写它。例如 -
def newList = []
for (elt in list) {
newList << elt++
}
print newList
这是一个vm限制,因为在引擎盖下,闭包由类声明表示。没有简单的方法将显示视图生成的类注入正在运行的应用程序。