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,问题解决。