将地图返回到另一张地图

Returning map to another map

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

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

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

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

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

我上面的地图传递正确了吗?

Map 中的

putAll 有一个 void return 类型。这是方法的最后一行,void 是 returned。必须明确 return 编辑地图。

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

您想使用 leftShift 来减少冗长。

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