0

Groovy スクリプトがあります。私が提供するバインディングを介してJavaで:

binding.put( 'a','Hello')

GroovyShell 経由でスクリプトを実行すると、次のようになります。

print "${a}"

印刷します

Hello

別のメソッドを呼び出した結果として、任意のテキストがprint "${a}"どこにあるのかを知る必要があります。a実行時に名前が決定される変数を出力するだけです。これはどのように可能ですか?

明確にするためのもう1つの例:

binding.put( 'm','n')
binding.put( 'n','p')

印刷???? 'p'そして、出力'm''n'

4

1 に答える 1

1

次のようなものが機能します。

// Java code...

Binding binding = new Binding();
binding.setVariable("m", "n");
binding.setVariable("n", "result");

// here the script is hardcoded in this Java source
// file but could be read from anywhere...
String groovyScript = "evaluate \"println(${m})\"";

GroovyShell shell = new GroovyShell(binding);

// this will println "result"
shell.evaluate(groovyScript);

それが役立つことを願っています。

于 2014-07-22T18:34:49.577 に答える