我試圖將我的一個記錄序列化爲人類可讀的格式。雖然使用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