如何在groovy中创建具有给定参数但未定义的方法(函数)

如何在groovy中创建具有给定参数但未定义的方法(函数),groovy,Groovy,我对groovy完全是新手,老实说,在groovy中查找东西真的很困难。所以我注意到这样的想法是可以实现的: 我们有功能 def static someMethod (params) { ... } 然后你可以这样称呼这个: someMethod (param1 : value1, param2 : value2, param3 : value3....) 所以我的问题是:我如何读取我的someMethod中的那些param1、param2等?我的意思是我应该做些类似的事情吗 def sta

我对groovy完全是新手,老实说,在groovy中查找东西真的很困难。所以我注意到这样的想法是可以实现的:

我们有功能

def static someMethod (params) {
...
}
然后你可以这样称呼这个:

someMethod (param1 : value1, param2 : value2, param3 : value3....)
所以我的问题是:我如何读取我的
someMethod
中的那些param1、param2等?我的意思是我应该做些类似的事情吗

def static someMethod (params) {
def result = param1 + param2 + param3
}
如果有人说Don give param3,这个函数会返回nullPointerException吗? 就像我说的我是新来的,所以任何答案都可能是最好的(一些链接是meaby?)
提前感谢,并对我的英语不好表示歉意。

当您声明此方法时:

def static someMethod (params) {
   def result = params.param1 + params.param2 + params.param3
   println result
}
然后像这样调用:

someMethod (param1 : 1, param2 : 2, param3 :3)
传递给方法调用的是
map
,因此在方法体中,在本例中,
params
需要使用map name作为键名前缀


当键不存在值时-
null
将被返回,除非您使用
withDefault
定义
map
,否则将返回默认值。

啊,谢谢您的回答。还有一个问题:如果它是一个映射,我可以首先创建一些defaultMap,然后使用类似这样的方式将我的参数加载到此映射:默认情况下,您可以使用
params=[param1:'a',param2:'b',param3:'c']使用这种方法时需要注意的一点是,它们很难记录,方法签名并没有给出任何提示,说明它可能采用什么神奇参数。它对于xml构建器之类的东西非常有用。。。但一般来说,指定参数可能是一种更好的自我记录方式?