如何在Groovy中获取方法参数/参数的名称?

3
我有一个Groovy脚本,其中包含一个带有两个参数的函数,其中一个参数是哈希映射。我想在函数内部检查哈希映射变量的名称是否包含子字符串。我该怎么做?
def myfunc(String var, HashMap var2)
{
    // need a routine to retrive the name of the variable var2
} 

需要一个例程来检索变量var2的名称并不合理。var2是变量的名称。您能否澄清您想要实现的内容? - Jeff Scott Brown
2个回答

3
这里已经很好地解释了:获取方法参数名称
要访问Groovy脚本的方法,请遵循以下语法:metaClass.methods

0

看起来你想要使用--parameters(别名-pa)编译器参数。

在JDK 8及以上版本上生成用于反射方法参数名称的元数据。默认值为false。

用法:groovy --parameters Person.groovy

也可用于groovycgroovyConsolegroovysh和groovy的ant tasks。查看贡献 PR 某位牛人 提供的内容...

例如:

class HelloWorld {
   static void speak(String firstName) {
      println "Hello $firstName"   
   } 
}

Student.methods.each { 
    if (it.name === 'speak') println it.parameters
}

// groovy HelloWorld.groovy => "[java.lang.String arg0]"
// groovy -pa HelloWorld.groovy => "[java.lang.String firstName]"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接