Clojure: praca z java.util.HashMap w sposób idiomatyczny Clojure

mamjava.util.HashMap obiektm (wartość zwracana z wywołania kodu Java) i chciałbym uzyskać nową mapę z dodatkową parą klucz-wartość.

Jeślim Mogłem użyć mapy Clojure:

(assoc m "key" "value")

Ale próbuję tego naHashMap daje:

java.lang.ClassCastException: java.util.HashMap nie może być rzutowany na clojure.lang.Associative

Nie mam szczęściaseq zarówno:

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

java.lang.ClassCastException: clojure.lang.IteratorSeq nie może być rzutowany na clojure.lang.Associative

Jedynym sposobem, w jaki udało mi się to zrobić, było użycieHashMapwłasnyput, ale to wracavoid więc muszę wyraźnie wrócićm:

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

To nie jest idiomatyczny kod Clojure, plus modyfikujęm zamiast tworzyć nową mapę.

Jak pracować zHashMap w sposób bardziej Clojure?

questionAnswers(4)

yourAnswerToTheQuestion