groovy调用可选参数

时间:2015-10-28 00:23:52

标签: groovy

我有一个方法如下:

void display(def a = null, def b = null) {

// user provides either value for a, or b
// if he gives value for a, it will be used 
// if he gives value for b, it will be used 

// not supposed to provide values for both a and b

}

我的问题是,用户应该如何为b提供价值?

如果我使用

display(b = 20)

它为a分配20,这是我不想要的。

完成此任务的唯一方法是调用如下?

display(null, 20) 

1 个答案:

答案 0 :(得分:0)

使用可选参数,是的,您必须致电display(null, 20)。但您也可以定义接受Map的方法。

void display(Map params) {
    if(params.a && params.b) throw new Exception("A helpful message goes here.")

    if(params.a) { // use a }
    else if(params.b) { // use b }
}

然后可以像这样调用该方法:

display(a: 'some value')
display(b: 'some other value')
display(a: 'some value', b: 'some other value') // This one throws an exception.