Groovy方法与可选参数
发布时间:2020-12-14 16:37:40 所属栏目:大数据 来源:网络整理
导读:我想为webservice编写一个包装方法,该服务接受2个强制性和3个可选参数。 为了有一个较短的例子,我想得到以下代码的工作 def myMethod(pParm1='1',pParm2='2') { println "${pParm1}${pParm2}"}myMethod();myMethod('a')myMethod(pParm2:'a') // doesn't wo
我想为webservice编写一个包装方法,该服务接受2个强制性和3个可选参数。
为了有一个较短的例子,我想得到以下代码的工作 def myMethod(pParm1='1',pParm2='2') { println "${pParm1}${pParm2}" } myMethod(); myMethod('a') myMethod(pParm2:'a') // doesn't work as expected myMethod('b','c') 输出为: 12 a2 [pParm2:a]2 a2 bc 我想要实现的是给出一个参数,并得到1a作为结果。 解决方法
无法做到这一点…代码
def myMethod(pParm1='1',pParm2='2'){ println "${pParm1}${pParm2}" } 基本上使groovy创建以下方法: Object myMethod( pParm1,pParm2 ) { println "$pParm1$pParm2" } Object myMethod( pParm1 ) { this.myMethod( pParm1,'2' ) } Object myMethod() { this.myMethod( '1','2' ) } 另一种选择是将可选地图作为第一个参数: def myMethod( Map map = [:],String mandatory1,String mandatory2 ){ println "${mandatory1} ${mandatory2} ${map.parm1 ?: '1'} ${map.parm2 ?: '2'}" } myMethod( 'a','b' ) // prints 'a b 1 2' myMethod( 'a','b',parm1:'value' ) // prints 'a b value 2' myMethod( 'a',parm2:'2nd') // prints 'a b 1 2nd' 显然,记录这一点,所以其他人知道魔法地图中有什么,默认是什么留给读者;-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |