Clojure: trabajar con java.util.HashMap de una manera idiomática de Clojure

tengo unjava.util.HashMap objetom (un valor de retorno de una llamada a un código Java) y me gustaría obtener un nuevo mapa con un par clave-valor adicional.

Sim Si fuera un mapa de Clojure, podría usar:

(assoc m "key" "value")

Pero probando eso en unaHashMap da:

java.lang.ClassCastException: java.util.HashMap no se puede convertir a clojure.lang.Associative

Sin suerte conseq ya sea:

(assoc (seq m) "key" "value")

java.lang.ClassCastException: clojure.lang.IteratorSeq no se puede convertir a clojure.lang.Associative

La única forma en que logré hacerlo fue usarHashMappropiaput, pero eso vuelvevoid así que tengo que volver explícitamentem:

(do (. m put "key" "value") m)

Esto no es un código idiomático de Clojure, además estoy modificandom En lugar de crear un nuevo mapa.

Cómo trabajar con unHashMap De una manera más Clojure-ish?

Respuestas a la pregunta(4)

Su respuesta a la pregunta