java序列化 – 持久化类定义
发布时间:2020-12-15 02:31:03 所属栏目:Java 来源:网络整理
导读:我在 java中学习了一些序列化.我的基本理解是它是一种机制,用于持久化对象的状态并将其写入流,以便我们可以在任何后期或任何其他未创建对象的“JVM”中对其进行充气和使用. 现在假设我有一个类A并创建一个类A的实例,即对象a,将其序列化并将其存储在文件“A.s
我在
java中学习了一些序列化.我的基本理解是它是一种机制,用于持久化对象的状态并将其写入流,以便我们可以在任何后期或任何其他未创建对象的“JVM”中对其进行充气和使用.
现在假设我有一个类A并创建一个类A的实例,即对象a,将其序列化并将其存储在文件“A.ser”中.我将文件复制到其他系统并反序列化文件“A.ser”以获取对象a的持久状态.但是在这种情况下,A的类定义应该出现在我反序列化对象的另一个系统中!是否有任何方法可以保存甚至类定义并将其传输到其他系统,以便其他JVM不知道什么是A类,直到我们反序列化文件获取类定义并在那里重建类? 解决方法
你描述的是一个ClassLoader.为了能够在类路径中没有A的JVM中加载A类,您需要使用ClassLoader来加载类(及其依赖项).
然后,ObjectInputSTream必须委托自定义类加载器来解析其类. 有关这样做的示例,请参阅https://forums.oracle.com/forums/thread.jspa?threadID=1149865中的最后一篇文章.春天也有such an ObjectInputStream. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |