设为首页 加入收藏

TOP

Java transient关键字使用小记(三)
2015-11-10 13:45:32 来源: 作者: 【 】 浏览:6
Tags:Java transient 关键字 使用 小记
utStream(new FileOutputStream(
? ? ? ? ? ? ? ? new File("test")));
? ? ? ? out.writeObject(et);


? ? ? ? ObjectInput in = new ObjectInputStream(new FileInputStream(new File(
? ? ? ? ? ? ? ? "test")));
? ? ? ? et = (ExternalizableTest) in.readObject();
? ? ? ? System.out.println(et.content);


? ? ? ? out.close();
? ? ? ? in.close();
? ? }
}


content变量会被序列化吗?好吧,我把答案都输出来了,是的,运行结果就是:


是的,我将会被序列化,不管我是否被transient关键字修饰


这是为什么呢,不是说类的变量被transient关键字修饰以后将不能序列化了吗?


我们知道在Java中,对象的序列化可以通过实现两种接口来实现,若实现的是Serializable接口,则所有的序列化将会自动进行,若实现的是Externalizable接口,则没有任何东西可以自动序列化,需要在writeExternal方法中进行手工指定所要序列化的变量,这与是否被transient修饰无关。因此第二个例子输出的是变量content初始化的内容,而不是null。


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中hashcode,equals和== 下一篇C/C++语言中关于const用法的总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: