将地图返回到另一个地图

时间:2015-01-14 03:02:07

标签: groovy

我在控制器中有2个功能,如下所示。但是我不确定我是否做得对。

def save() {
    Map varObj = [:]
    varObj.putAll(setData(params, size))
}

def setData(data, size) {
    Map obj = [
        //Some process here
    ]
    return obj
}

我这样做的原因是因为setData中的逻辑将用于控制器中的少数函数,因此我只需创建setData函数并在需要时使用它。

我在setData中得到了obj(我打印它并显示正确的地图),但是当我试图将地图返回到save()时,我在varObj上得到了null。

我是否在上面正确地传递了地图?

1 个答案:

答案 0 :(得分:1)

Map中的

putAll具有void返回类型。这是方法的最后一行,void被返回。必须明确返回地图。

def save() {
    Map varObj = [:]
    varObj.putAll(setData(params, size))
    varObj
}

您希望使用leftShift来降低详细程度。

def save() {
    Map varObj = [:]
    varObj << setData(params, size)
}