小编Cyr*_*rax的帖子

Clojure defrecord序列化ClassNotFoundException

我试图将我的一个记录序列化为人类可读的格式.虽然使用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)
   )
Run Code Online (Sandbox Code Playgroud)

文本文件内容:

#common.dummy.Doodh["moooh", "Cows"]
Run Code Online (Sandbox Code Playgroud)

serialization record clojure

3
推荐指数
1
解决办法
710
查看次数

标签 统计

clojure ×1

record ×1

serialization ×1