【发布时间】:2013-12-12 08:30:09
【问题描述】:
我想自动转储一个由 Clojure 初始化产生的 Var 对象 - 即一个不实现 Serializable 并嵌套多个类似对象的复杂对象。
我尝试了一些框架,但它们都不起作用(XStream 生成带有一些空值的 XML),Android 不支持(Kryo 需要 java.misc.Unsafe,它在 Android 上的实现有限;JBoss Serialization 还需要Android 上不可用的东西...),或者不是自动的(GSon 需要为泛型定义类型标记...)。
效率并不重要(它只是一个实验/用于调试)。
知道该怎么做吗?
【问题讨论】:
-
您可以使用反射和递归自己完成。
-
您的意思是遍历所有涉及的对象并更改它们以实现Serializable,然后使用标准的对象序列化吗?
-
不,我的意思是你可以为任意对象实现你自己的对象序列化。您只需访问每个对象及其所有属性并将它们转换为 xml(或您想要的任何格式)。
-
你在clojure初始化中试过edn还是json?
-
我尝试使用生成 json 的 GSon 对其进行序列化 - 但结果是“无法为接口 clojure.lang.IPersistentMap 调用无参数构造函数”
标签: java android serialization clojure clone