在调试时评估GROOVY表达式

时间:2011-02-20 13:24:43

标签: eclipse debugging groovy sts-springsourcetoolsuite

我正在尝试在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)时问题没有发生。

1 个答案:

答案 0 :(得分:1)

您无法在显示视图中创建闭包。相反,您需要在for循环中编写它。例如 -

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

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