在 Groovy 中浅克隆或复制映射的惯用方法

问题描述 投票:0回答:1

我想浅复制脚本中的地图,以便我可以更新其键之一。一种方法是使用扩展运算符。但是,我的脚本在 Jenkins 管道中运行,其中根据公司政策不允许使用扩展运算符。

我尝试使用

clone()
方法,该方法有效,但 Intellij 中出现警告“对‘克隆’的访问超出了其访问权限”。部分原因是地图对象是从 Jenkins
readJSON
方法创建的,该方法可能返回类似地图的对象,并且
clone()
方法可能无法实现。

除了扩展运算符之外,还有什么更惯用的浅复制映射方法?

groovy jenkins-groovy
1个回答
0
投票

您可以使用

collectEntries(Closure.IDENTITY)
- 地图没有无参数版本,您必须传递某个版本的identity-fn

© www.soinside.com 2019 - 2024. All rights reserved.