Java中的transient关键字
来源:互联网 发布:全世界讨厌中国人知乎 编辑:程序博客网 时间:2024/06/05 20:35
控制序列化过程时,可能有一个特定的子对象不愿让Java的序列化机制自动保存与恢复。一般地,若那个子对象包含了不想序列化的敏感信息(如密码),就会面临这种情况。即使那种信息在对象中具有“private”(私有)属性,但一旦经序列化处理,人们就可以通过读取一个文件,或者拦截网络传输得到它。
为防止对象的敏感部分被序列化,一个办法是将自己的类实现为Externalizable。这样一来,没有任何东西可以自动序列化,只能在writeExternal()明确序列化那些需要的部分。
然而,若操作的是一个Serializable对象,所有序列化操作都会自动进行。为解决这个问题,可以用transient(临时)逐个字段地关闭序列化,它的意思是“不要麻烦你(指自动机制)保存或恢复它了——我会自己处理的”。
例如,假设一个Login对象包含了与一个特定的登录会话有关的信息。校验登录的合法性时,一般都想将数据保存下来,但不包括密码。为做到这一点,最简单的办法是实现Serializable,并将password字段设为transient
为防止对象的敏感部分被序列化,一个办法是将自己的类实现为Externalizable。这样一来,没有任何东西可以自动序列化,只能在writeExternal()明确序列化那些需要的部分。
然而,若操作的是一个Serializable对象,所有序列化操作都会自动进行。为解决这个问题,可以用transient(临时)逐个字段地关闭序列化,它的意思是“不要麻烦你(指自动机制)保存或恢复它了——我会自己处理的”。
例如,假设一个Login对象包含了与一个特定的登录会话有关的信息。校验登录的合法性时,一般都想将数据保存下来,但不包括密码。为做到这一点,最简单的办法是实现Serializable,并将password字段设为transient
阅读全文
1 0
- Java中的transient关键字
- java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- java中的Transient关键字
- Java中的transient关键字
- Java中的关键字 transient
- Java中的关键字transient
- Java中的transient关键字
- Java中的transient关键字
- Java中的transient关键字
- java中的transient关键字
- Python装饰器、metaclass、abc模块学习笔记
- linux 查看系统信息相关命令
- .gradle目录组织
- Cache注解详解
- studio3.0Butterknife使用及报错解决
- Java中的transient关键字
- servlet 和 filter执行顺序
- 深入理解Java垃圾回收机制
- 生成器方法Symbol.iterator
- 远程连接MYSQL提示Host is not allowed to connect to this MySQL server
- 关于拷贝文件后的权限问题
- selenium的下载地址
- cocos creator 系统事件监听方法
- 头像上传代码