首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java序列化之4: 进一步思考

2012-11-08 
Java序列化之四: 进一步思考1,当需要被序列化的类对象中的一部分成员变量是不可被序列化的,会发生什么情况

Java序列化之四: 进一步思考
1,当需要被序列化的类对象中的一部分成员变量是不可被序列化的,会发生什么情况呢?

   例如下面的的代码

public class Resume { private String work; public String getWork() {  return work; } public void setWork(String work) {  this.work = work; } public String getCollege() {  return college; } public void setCollege(String college) {  this.college = college; } private String college;} public Person(String str, int n) {  System.out.println("Inside Person's Constructor");  name = str;  age = n; } String getName() {  return name; } int getAge() {  return age; }}


   执行以上的代码可以发现,当Person对象的resume被赋值之后,序列化时
  
   会发生NotSerializableException。单就这一个问题,就带来了很大的复杂性。因为当一个
  
   系统中的类定义很多的时候,很难判断某一个类成员是否是Serilizable的。


2,当JDK版本切换之后,序列化过程会不会出错。

   答案:应该不会出错(未验证)

   参见以下网址
   http://docs.oracle.com/javase/6/docs/platform/serialization/spec/version.html
   http://stackoverflow.com/questions/152757/is-java-object-serialization-   compatible-between-1-5-and-1-6


3,transient关键字

   被transient修饰的成员变量不会被序列化。当实例1中的resume被transient修饰的时候,就不会抛出NotSerializableException。

热点排行