嗨,我正在使用不同的VM (Oracle hotspot,jse)序列化一个对象,并使用android VM(dalvik)对其进行反序列化。会有什么问题吗?
发布于 2013-04-07 22:42:40
假设您所说的“序列化”是指Serializable,那么是的。不能保证不同VM之间的序列化是相同的。请使用其他格式(例如,XML、JSON)。
更新
你的第一条评论有缺陷,我无法用500个字符来表达我的回复。
当然是这样的。如果不实现Serializable,我们就不能序列化
有才华的程序员可以。有才华的程序员可以将数据序列化为XML、JSON、Protocol Buffers、Thrift、ASN.l、YAML和任意数量的其他格式。
实际上,我正在使用ObjectOutputStream(
hotspot)在网络上写入一个对象,并使用ObjectInputStream在安卓上读取该对象
有才华的程序员使用独立于平台的序列化方法,例如我上面列出的任何方法。这是因为有才华的程序员意识到,在未来,可能需要拥有不基于Java的客户端或服务器。
你的意思是说,到目前为止,这是好的,但在未来,这是不能保证的。
。
不是的。我写道:
不能保证不同虚拟机之间的
序列化是相同的。
使用一个VM (例如,Oracle)序列化的对象应该能够使用该VM进行反序列化。不能保证使用一个VM序列化的对象可以使用另一个VM反序列化。事实上,开发人员在尝试做您想要做的事情时遇到了麻烦。这是有才华的程序员使用独立于平台的序列化结构的另一个例子。
https://stackoverflow.com/questions/15863585
复制相似问题