没有合适的资源?快使用搜索试试~ 我知道了~
以前没有接触过这个小玩意,看到一个开源项目里有,就仔细研究了一下,transient修饰符的使用
资源推荐
资源详情
资源评论
transient:修饰符
使用对象:字段
作用:用来标识一个成员变量在序列化子系统中应被忽略。
介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。
在 JPA 实体中,所有未使用 Transient 注释(由 JPA 定义)进行注释的非瞬态字段都是持
久化字段。“持久化”意味着字段被映射到数据库中的列。请注意,Patient 类中的一些持久
化字段没有注释。这是由于 JPA 定义的默认值(如默认的列名称)对于这些字段来说是正
确的。如果字段名称与其映射的数据库列名称不同,则必须使用 Column 注释来为数据库
列指定一个不同的列名称。
我们都知道一个对象只要实现了 Serilizable 接口,这个对象就可以被序列化,java 的这种
序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类
实现了 Serilizable 接口,这个的所有属性和方法都会自动序列化。
然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而
其他属性不需要被序列化,诚然,你可以让这个类来实现 Externalizable 接口,这个接口
是 Serilizable 的子接口,但是你必须实现 readExternal 和 writeExternal 方法,你可以在这
两个方法中实现具体属性的反序列化和序列化操作。然而这就意味着你必须在这两个方法
中手工编写额外的代码来进行具体属性的序列化。java 的 transient 关键字为我们提供了便
利,你只需要实现 Serilizable 接口,将不需要序列化的属性前添加关键字 transient,序列
化对象的时候,这个属性就不会序列化到指定的目的地中。
public class TestTransient {
/**
* @param args
* @throws IOException
* @throws FileNotFoundException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException, IOException,
ClassNotFoundException {
A a = new A(25,"张三");
System.out.println(a);
ObjectOutputStream oos = new ObjectOutputStream(new
FileOutputStream("c://mm.txt"));
oos.writeObject(a);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new
FileInputStream("c://mm.txt"));
a = (A)ois.readObject();
System.out.println(a);
资源评论
Shi_Qian
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功