${somethingElse}
が入っているテキストが表示されていますが、これは通常の文字列です。
私はクラスを持っている:
class Whatever {
def somethingElse = 5
void action(String sth) {
def test = []
test.testing = sth
assert test.testing == 5
}
}
はグルーヴィーで、それは可能ですか?
EDIT:
私のシナリオは次のとおりです。私のアプリケーションでいくつかの他の値を指している値を持つノードが含まれている負荷のxmlファイル、。だから私はshell.setVariable("current", myClass)
を持っているとしましょう。そして今、私のXMLで、${current.someField}
を値にしたいと思っています。 問題は、xmlの値が文字列であり、簡単に評価できないということです。 これらの「値」がユーザーによってどのように作成されるのか予測できません。少数のクラスを使用することができます。
xmlファイルがロードされたときに変換できません。特定のケースで使用するため、「オンデマンド」でなければなりません。その瞬間に値を使用できるようにしたいときxmlファイルが読み込まれます。
ヒント?あなたができる
これはオーバーヘッドのようです。私たちはシェルを使用してバインディングを設定することを考えましたが、それは過剰なもののようにも見えました。 – Krystian
ええ、私が考えることのできるもう1つの方法は、 'GroovyShell'を使って' Bindings'を渡すことです...あなたが許可された入力をより詳細に制御できるという利点があると思います... 'Eval.XXX'が勝ちましたあなたはあなたが求められる変数を知らないので、仕事はしません。:-( –