В Python я могу использовать оценку () для выполнения, пользователь ввел код в моей программе. Действительно ли там что-нибудь подобно, я могу сделать в Groovy? Я хочу иметь текстовое поле SWING UI, где пользователь вводит часть кода, который я хочу выполнить?
Спасибо, Хари
Есть несколько способов запустить 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
Да, можно динамически оценивать код в 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
Попробуйте это (но, как обычно при использовании eval в любом скриптовом языке, будьте осторожны с экзекуцией вредоносного кода):
evaluate("print new Date()")