what is the use of transient keyword and when to use it?
Possible Duplicate:
what does the keyword"transient" means in java?
号
我在Java中阅读了关于EDCOX1×0的关键字。我理解的是什么?它被用于田野。如果声明
- 坎南
您可以将其用于要从序列化中排除的字段。序列化仅适用于类层次结构中的类或类实现接口的类。例如,
当您希望将对象从Java堆转移到平面文件或网络上时,需要进行序列化;基本上,每当对象需要从JVM中取出时,都需要以某种方式存储,以便可以重新创建。
因此,如果在序列化之后再次创建对象时,您认为不需要填充任何变量,那么您可以将其声明为瞬态变量。例如物体上的温度。我们知道,如果我们以任何方式重新创建对象,那么当前的温度没有任何意义,那么为什么要在序列化过程中对其进行序列化。
序列化对象时,使用
通常,Java实现的默认行为对于串行化的许多"常用"来说是足够好的。
1 2 3 4 5 6 7 8 9 10 | private void writeObject(java.io.ObjectOutputStream out) throws IOException{ out.defaultWriteObject(); } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException{ in.defaultReadObject(); //here do something to re-initialize transient variables } |
通过这种方式,您可以为所有声明的瞬态插入一个特殊的处理。(请记住,只有在第一次使用可序列化类的构造函数时才调用它,而不是在从
在任何其他不涉及序列化的上下文中,