run groovyconsole
(распространяется с groovy)
введите простой скрипт:
number=44
return this
выберите меню Script -> Inspect Ast
и в новом окне Groovy AST Browser
выберите phase = Conversion
вы увидите свой Groovy скрипт, но преобразованный в класс Script, подобный следующему:
public class script1548245785832 extends groovy.lang.Script {
public script1548245785832() {
}
public java.lang.Object run() {
number = 44
return this
}
}
это фактический код, сгенерированный для вашего скрипта.
Как видите, конструктор пуст, поэтому никакой информации о свойстве number
после вызова newInstance()
, но после вызова run()
вы фактически запускаете свой скрипт.
ваш скрипт может быть таким классом:
class Importee {
int number=44
public Object run(){
println number
}
}
, в этом случае будет достаточно создать экземпляр класса без вызова метода run()
и получить значение переменной числа...
def clazz = gcl.parseClass( new File("Importee.groovy")) )
def script = clazz.newInstance()
println("the variable: ${script.number}")