Оценка выражения GROOVY при отладке - PullRequest
1 голос
/ 20 февраля 2011

Я пытаюсь отладить простой проект Groovy в Eclipse, код такой простой:

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 Plugin 2.1.2.xx.20110218

И, кстати, я думаю, что проблема не возникала, когда я использовал sts 2.3.x (eclipse 3.5.x)

1 Ответ

1 голос
/ 24 февраля 2011

Вы не можете создавать замыкания на экране дисплея. Вместо этого вам нужно будет записать это в цикл for. Eg-

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

Это ограничение vm, поскольку под капотом замыкание представляется объявлением класса. Нет простого способа внедрить класс, сгенерированный представлением отображения, в работающее приложение.

...