openlang

Предпочтительный способ поверхностно скопировать map в Groovy

Мне нужно создать поверхностную копию map внутри скрипта, чтобы потом изменить один из ключей. Один вариант даёт оператор spread. Но код работает в Jenkins pipeline, а политика нашей организации запрещает этот оператор.

Вызов метода clone() работает, хотя Intellij сообщает "Access to 'clone' exceeds its access rights". Отчасти причина в том, что map создаётся через Jenkins readJSON, который может вернуть похожий на map объект без реализации самого метода clone().

Какой способ поверхностного копирования map наиболее идиоматичен, если исключить spread?

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Нашёл более короткий способ сделать поверхностную копию 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.postgr…

    Ответы 2Последняя активность sql