请在2024年Clojure状态调查中分享您的想法!

欢迎!请在关于页面了解更多关于本网站的信息。

0 投票
Java Interop

大家好,

我有许多Java序列化对象想要检查和转换。

我尝试使用Java-in-Clojure的常规方法来完成以下操作
(原谅这个迭代风格,我通常不直接与Java交云,这对我来说也是一门相对陌生的语言,但这似乎没有clojuristic包装器。

包含对象的文件:input.ser

(import '[java.io FileInputStream ObjectInputStream])
(def fis (new FileInputStream "input.ser"))
(def ois (new ObjectInputStream fis)

(.readObject ois) ;; this fails due to a ClassNotFoundException

有没有方法可以得到对象的一种类似的反序列化视图,以便在加载后进行检查?该文件本身不可读,因为它在序列化之前压缩了字节。

1个答案

+2 投票
}}
被选中
 
最佳答案

您需要将反序列化时用到的类放置在类路径下以便进行反序列化。这正是Java序列化的工作方式。

可能有一种通用的Java序列化对象内省器,但我不了解有这样的工具。实际上,每个类都可以编写定制的序列化和反序列化代码,所以如果没有这些信息,我不确定是否存在一个通用的内省器。

...