java的transient

今天遇到个了一个问题,在使用Swing的drap and drop处理JTree的时候,我的TreeNode中的UserObject中引用了java.awt.Image类。

 

然后在dnd的时候会报java.io.NotSerializableException.

 

由于不太了解dnd的data transfer,所以没解决这个问题

 

最后发现java有transient关键字.

 

copy来一段介绍

 

/*transient 
	  Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的

	class A implements Serializable {
	 private String name;
	 transient private String address;
	}

	那么你在串行化(IO流等)A类时 给它的name和address属性赋值,那么你在提取A时,拿到了name属性,但是却拿不到address属性*/

 

把Image的对象声明为transient,问题解决。

posted @ 2014-02-20 10:58  带狗狗带  Views(587)  Comments(0Edit  收藏  举报