Gee*_*eek 1 java serialization effective-java
从Effective Java的Serialization章节:
如果被反序列化的对象的类使用适当的声明定义了readResolve方法,则在反序列化后对新创建的对象调用此方法.
Effective Java中提供的示例如下所示,似乎Javadoc所说的throws部分是正确的格式,即ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;
// readResolve for instance control - you can do better!
private Object readResolve () {
// Return the one true Elvis and let the garbage collector
// take care of the Elvis impersonator.
return INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)
这里有适当的声明是什么意思?如果声明不合适,课程是否会编译?我发现这句话有点令人困惑.
来自javadoc Serializable
从流中读取实例时需要指定替换的类应该使用精确签名实现此特殊方法.
ANY-ACCESS-MODIFIER对象readResolve()抛出ObjectStreamException;
因此,proper declaration该方法必须具有与上述相同的声明.
出现此行为是因为
Serializable充当JRE/JVM的标记,JRE/JVM可以根据其存在采取行动.
但是没有任何自己声明的抽象方法.
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |