【问题标题】:How to get name of method parameter/argument in groovy?如何在groovy中获取方法参数/参数的名称?
【发布时间】:2014-06-20 04:02:13
【问题描述】:

我有一个带有 2 个参数的函数的 groovy 脚本,其中一个是哈希图。我想检查函数内部的哈希图变量的名称是否包含子字符串。我该怎么做?

def myfunc(String var, HashMap var2)
{
    // need a routine to retrive the name of the variable var2
} 

【问题讨论】:

  • “需要一个例程来检索变量 var2 的名称”没有意义。 var2 是变量的名称。你能澄清一下你认为你想做的事吗?

标签: reflection groovy


【解决方案1】:

这里解释得很好: Getting the name of a method parameter

要访问 groovy 脚本的方法,请遵循以下语法:

metaClass.methods

【讨论】:

    【解决方案2】:

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

    生成元数据以反映 JDK 8 及更高版本上的方法参数名称。默认为 false。

    用法:groovy --parameters Person.groovy

    也可用于groovycgroovyConsolegroovysh 和 groovy ant tasks。查看 PR some awesome person 贡献的...

    例如

    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]"
    

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 2010-09-17
      • 2015-10-01
      • 2011-10-09
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多