我正在使用groovy扩展遗留脚本系统。源脚本是“类似Java的”,因此它主要通过一些预处理来解析为groovy脚本。
我正在使用invokeMethod()和missingMethod()来传递遗留代码,使我能够使用闭包和其他常规功能来增强脚本。但是,原始脚本使用“$ foo”类型的字符串来引用变量。当missMethod()捕获遗留方法时,我需要它不将此字符串作为GString计算,而只是逐字输出。这有可能吗?
答案 0 :(得分:4)
有两种方法可以逃避$ foo:
示例:
def test = "bad"
def s0 = "$test"
def s1 = "\$test"
assert s1 != s0
def s2 = '$test'
assert s2 == s1
println s0
println s1
println s2
所以我猜你必须使用你的预处理器来逃避你的字符串