我试图将我的一个记录序列化为人类可读的格式。虽然使用Java序列化程序的序列化工作正常,但我试图使用print-dup。我面临的问题是,在写入记录的过程中,读取记录的结果会很好,只需读取clojure.lang.LispReader $ ReaderException:java.lang.ClassNotFoundException:common.dummy.Doodh。我搞砸了命名空间还是什么? 请注意,这不是Java序列化的问题。下面 代码最简单的形式Clojure defrecord序列化ClassNotFoundException
(ns common.dummy)
(defrecord Doodh [id name])
(defn output [filename obj]
(def trr(map->Doodh {:id "moooh" :name "Cows"}))
(def my-string (binding [*print-dup* true] (pr-str trr)))
(spit filename my-string)
)
(defn pull [filename]
(def my-data (with-in-str (slurp filename) (read)))
(println my-data)
)
文本文件的内容:
#common.dummy.Doodh["moooh", "Cows"]
什么是Doodh,顺便说一下? –
无法重现错误。报告'* clojure-version *和你生成异常的测试。 –
Doodh =牛奶。因此,mooh和奶牛。 – Cyrax