序列化和反射的问题?反序列化的一方怎么得到相应的类型信息

一直以来,有一个问题困扰我很久了。经常会看到:一个对象序列化,然后反序列化就可以使用了。但是反序列化的一方怎么得到相应的类型信息?在序列化的时候相应的类型信息也会被序列化吗?还是反序列化的一方必须要有相应的类型信息才能反序列化?

5个回答

事实上在进行序列化和反序列化的时候,并不关心这个对象究竟是什么类,
一般可以使用对象流,ObjectInputStream和ObjectOutputStream,实现对象序列化和反序列化,返回的肯定是Object
如果楼主说的是对象属性的数据类型的话,这个肯定也是被序列化的一部分

hongsemoshushi
红色魔术师 如果是分布式呢?比方说WCF
5 年多之前 回复

举个简单的例子吧,你从数据库中读出一些数据,比如是123aaa,为了数据的安全性,一般会进行序列化转成Json格式的数据,
(123aaa就变成了一堆看不懂的字符串),
然后,你在页面上需要展示这些信息时,总不能展示一堆字符串吧,那就需要把信息还原咯,那就要用到反序列化方法咯
(把一堆看不懂的字符串变成123aaa)
所以,经过了序列化的信息可以再次通过反序列化来还原信息

大概就是这样了

不对吧?你认真看一下题目好嘛,我问的重点在于类型上,是提前要有类型信息还是在序列化的时候类型信息也被写入到数据流中?

楼主 这是C#的一些项目实例代码 你可以参考一下
http://download.csdn.net/album/detail/1361

来个专业的回答吧.你问的应该是java的序列化和反序列化.

在java中一个对象要实现序列化和反序列化需要两步.
1.对象实现Serializable接口
2.对象在底层会通过ObjectOutputStream 对象的writeObject() 方法将对象写入到流中,这个过程叫序列化;通过ObjectInputStream 对象的readObject()方法来读取序列化对象
然后可以转换为你要接收的对象,这个过程叫反序列化.
对象中的所有属性肯定是要序列化的,而且类型要一致,否则会有转换异常.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐