Эквивалентный из оценки () в Groovy

В Python я могу использовать оценку () для выполнения, пользователь ввел код в моей программе. Действительно ли там что-нибудь подобно, я могу сделать в Groovy? Я хочу иметь текстовое поле SWING UI, где пользователь вводит часть кода, который я хочу выполнить?

Спасибо, Хари

9
задан Hari 16 July 2010 в 10:43
поделиться

3 ответа

Есть несколько способов запустить Groovy (как из Java, так и из Groovy):

http://groovy-lang.org/integrating.html

Однако самый быстрый способ ( для простых скриптов), вероятно, использовать класс Eval:

http://groovy-lang.org/integrating.html#integ-eval

Что позволит вам сделать что-то вроде:

Eval.me( '2 + 2' )

См. эту страницу из других примеров:

http://mrhaki.blogspot.com/2009/11/groovy-goodness-simple-evaluation-of.html

9
ответ дан 4 December 2019 в 13:44
поделиться

Да, можно динамически оценивать код в Groovy с помощью Eval.x, Eval.xy, Eval.xyz или Eval.me. См. документ API для получения более подробной информации об этих методах.

Например, вы используете Eval.me следующим образом:

def a = "hello"
def b = "world" 
Eval.me(""" println "$a $b" """)
--> hello world

Также см. это сообщение в блоге, где приведены некоторые примеры eval

4
ответ дан 4 December 2019 в 13:44
поделиться

Попробуйте это (но, как обычно при использовании eval в любом скриптовом языке, будьте осторожны с экзекуцией вредоносного кода):

evaluate("print new Date()")
2
ответ дан 4 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: