openlang

在 Groovy 中浅复制 map 的常用方法

我需要在脚本里创建一个 map 的浅复制,之后就能修改其中一个键。展开运算符是一种办法。但代码在 Jenkins 管道中运行,而我们组织的政策不允许使用这个运算符。

调用 clone() 方法可以成功,不过 Intellij 会提示 "Access to 'clone' exceeds its access rights"。部分原因是 map 来自 Jenkins readJSON,它可能返回一个类似 map 的对象,而这个对象本身没有实现 clone() 方法。

排除展开运算符后,浅复制 map 最常用的方式是什么?

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    我找到了一个更短的 map 浅复制方法。把原有 map 和空 map 相加就行。下面是例子。

    
    def baseline = [left: 2, right: 2]
    
    def duplicate = baseline + [:]
    
    assert duplicate == baseline
    assert !duplicate.is(baseline)
    从英语翻译查看原文

同一个问题的其他角度

  1. SQL 派生表中无法访问的字段

    我正在执行下面这条 SQL 语句。 它给出了下面的错误。 #1054 - Unknown column 'shipping.post_id' in 'on clause'. 代码看起来很简单,可就是无法正常工作。我哪里写错了?

    回复 2最近活动 sql
  2. 检查 D 数组中是否有匹配项

    关联数组可以这样写 普通数组要怎样做? 我想写一个验证表达式,比如下面这样

    回复 2最近活动 d
  3. 在 PostgreSQL 9+ 中安全删除可能不存在的列

    我想删除表中的一列。怎样确定这一列是否存在? 我看了 https://www.postgresql.org/docs/9.2/static/sql-altertable.html, 这页手册,但没有找到说明这种操作的例子。 还找到了检查 SQL Se…

    回复 2最近活动 sql