我试图将我的一个记录序列化为人类可读的格式。虽然使用 Java 序列化程序进行序列化工作正常,但我正在尝试使用 print-dup。我面临的问题是,在写入记录时,读取记录会导致 clojure.lang.LispReader$ReaderException: java.lang.ClassNotFoundException: common.dummy.Doodh。我是在搞乱命名空间还是什么?请注意,这不是 Java 序列化的问题。下面的代码以最简单的形式
(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"]