clojure.walk/stringify-keys
をレコードインスタンスを含むマップに呼び出そうとしています。 stringify-keysは再帰的なので、エラーの原因となる(がtrueであるため)レコード上のキーを変換しようとします。 varが単にClojureマップではなくレコードであるかどうかを確認する方法はありますか?私は 私自身のstringify-keys
の実装を提供していますが、これはレコード対応です。レコードインスタンスとマップの区別
stringify-keys
の現在の実装では、次の原因:
(use '[clojure.walk :only [stringify-keys]])
(defrecord Rec [x])
(let [record (Rec. "foo")
params {:x "x" :rec record}]
(stringify-keys params))
これは、次の例外が発生しますにUnsupportedOperationExceptionは空を作成できません:user.Rec user.Rec(NO_SOURCE_FILE:1)