我的groovyScript
IDEA动态模板中有Intellij
,如下所示:
groovyScript("D:/test.groovy","", v1)
在我的D:/test.groovy
我有这样的代码:
if ( v1 == 'abc') {
'abc'
}
现在我想将v1变量传递给test.groovy,任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
为了举例说明,我制作了一个实时模板,用当前类和当前方法打印注释。
这就是我的实时模板的定义方式:
以下是我编辑 variableResolvedWithGroovyScript 变量的方法:
给定变量的表达式具有以下值:
groovyScript("return \"// Current Class:\" + _1 + \". Current Method:\"+ _2 ", className(),methodName())
正如您所看到的,在这种情况下,_1(其作用类似于groovy脚本中的变量)采用第一个参数的值,即类名,而_2采用的是 第二个参数是方法名称。如果需要另一个参数,_3将在groovy脚本中用于引用给定的参数。
答案 1 :(得分:2)
groovyScript宏的参数绑定到名为_1,_2等的脚本变量。这也在Edit Template Variables Dialog / Live Template Variables的groovyScript帮助中进行了描述。
答案 2 :(得分:0)
我找到了解决方法。
我需要使用实时模型来计算合格类名称的CRC32
我这样使用它:
groovyScript("
def crc = new java.util.zip.CRC32().with { update _1.bytes; value };
return Long.toHexString(crc);
", qualifiedClassName())
那么结果就是
答案 3 :(得分:0)
基于documentation,您的变量可以用_1
,_2
等表示。请注意,变量传递时不带美元符号(因此只有 v1 而不是 $ v1 $ )
因此您的测试脚本应如下所示
if ( _2 == 'abc') {
'abc'
}