`

Java中的transient关键字

    博客分类:
  • java
阅读更多
transient说明一个属性是临时的,不会被序列化。
下面是一个Demo,name声明为 transient,不被序列化

package com.zzs.tet;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class TransientDemo implements Serializable{
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private  transient String name;
    private String password;
    
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * @param args
	 * @throws IOException 
	 * @throws FileNotFoundException 
	 * @throws ClassNotFoundException 
	 */
	public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
		// TODO Auto-generated method stub
		String path="D:"+File.separator+"object.txt";
		File file=new File(path);
		TransientDemo transientDemo=new TransientDemo();
		transientDemo.setName("姓名");
		transientDemo.setPassword("密码");
		ObjectOutput output=new ObjectOutputStream(new FileOutputStream(file));
		output.writeObject(transientDemo);
		ObjectInput input=new ObjectInputStream(new FileInputStream(file));
		TransientDemo demo=(	TransientDemo )input.readObject();
		System.out.println(demo.getName()+demo.getPassword());
	}

}

输出结果:
null密码
7
5
分享到:
评论
3 楼 airball 2012-07-12  
不会被序列化,也不会被持久化。Hibernate被设计出来,当真对Java研究的很透彻啊。
2 楼 zengzhaoshuai 2011-07-26  
gaowenming 写道
这个和hibernate中transient注解类似吧,加上该注解不会被映射!

hibernate annotation 的实体类中如果存在数据库中没有的字段,需要在这个字段中加上@Transient注释,不会被映射,也就不会被持久化
1 楼 gaowenming 2011-07-26  
这个和hibernate中transient注解类似吧,加上该注解不会被映射!

相关推荐

Global site tag (gtag.js) - Google Analytics