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

问题描述

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

解决方案

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

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

大概就是这样了

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

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

解决方案五:
来个专业的回答吧.你问的应该是java的序列化和反序列化.

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

时间: 2024-10-30 06:15:23

对象-序列化和反射的问题?反序列化的一方怎么得到相应的类型信息的相关文章

C#对象序列化和反序列化

C#对象序列化和反序列化,如下代码示例: using System;  using System.Text;  using System.Collections.Generic;  using System.IO;  using System.Runtime.Serialization.Formatters.Binary;    class SerializableOperate  {      private static void ObjectSerializable(object obj,

对象序列化反序列化例子

using System; using System.IO; using System.Xml.Serialization; [Serializable] public class Model { public string Name{get;set;} public string Possword{get;set;} public override string ToString() { return "Name:"+ Name+"possword:"+Possw

[Java开发之路](9)对象序列化与反序列化

1. 对象序列化 当你创建对象时,只要你需要,它会一直存在,但是程序终止时,无论何时它都不会继续存在.尽管这样做是非常有意义的,但是在某些情况下,如果程序不运行时扔能存在并且保存其信息,那将对我们非常有用.这样,在下次程序运行时,该对象将被重建并且拥有的信息与程序上次运行时它所拥有的信息相同.当然,我们也可以通过将信息写入文件或者数据库,但是如果能将一个对象声明为是"持久性"的,并为我们处理掉所有的细节,这将会显得十分方便. Java的序列化是将那些实现了Serializable接口的

Java中对象序列化与反序列化详解_java

本文实例讲述了Java中对象序列化与反序列化.分享给大家供大家参考.具体如下: 一.简介 对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程. 序列化一般用于以下场景: 1.永久性保存对象,保存对象的字节序列到本地文件中: 2.通过序列化对象在网络中传递对象: 3.通过序列化在进程间传递对象. 对象所属的类必须实现Serializable或是Externalizable接口才能被序列化.对实现了Serializable接口的类,其序列化

详解Java中对象序列化与反序列化_java

        序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是XML等格式.而字节的或XML编码格式可以还原完全相等的对象.这个相反的过程又称为反序列化.Java对象的序列化与反序列化 在Java中,我们可以通过多种方式来创建对象,并且只要对象没有被回收我们都可以复用该对象.但是,我们创建出来的这些Java对象都是存在于JVM的堆内存中的.只有JVM处于运行状态

Java对象序列化/反序列化的注意事项(转)

Java对象序列化     对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中.JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了.而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下.     对象序列化机制是Java内建的一种对象持久化方式,可以很容易实现在JVM中的活动对象与字节数组(流)之间进行转换,使用得Java对象可以被存储,可以被网络

.NET 中的对象序列化

对象 简介序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创建出与原对象完全相同的副本. 在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡.只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行.例如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化.以下各部分将探讨 .NET 框架提供

java-求助,Java中对象序列化的作用是什么?

问题描述 求助,Java中对象序列化的作用是什么? Java中对象序列化的作用是什么?求大神相助,希望能全面一点哦.急求大神解答 解决方案 简单来说,对象像一颗树,里面有字段,如果字段是类型,那么它还有自己的字段. 但是网络传输.保存文件,都必须是线性的,连续的. 序列化就是把这棵树拍扁,成为一个序列的过程. 反序列化就是从一个序列中重新把这颗树拉回来的过程. 解决方案二: 把一个对象,转成流数据,对方根据这个数据还原成初始对象,适用于不同对象间的传输,通讯 解决方案三: 序列化多用于网络IO通

java对象序列化学习笔记

java对象|笔记 目前网络上关于对象序列化的文章不少,但是我发现详细叙述用法和原理的文章太少.本人把自己经过经验总结和实际运用中的体会写成的学习笔记贡献给大家.希望能为整个java社区的繁荣做一点事情.    序列化的过程就是对象写入字节流和从字节流中读取对象.将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机.对象序列化功能非常简单.强大,在RMI.Socket.JMS.EJB都有应用.对象序列化问题在网