Fal*_*rri 10 java serialization
什么之间的区别readObject,并defaultReadObject在ObjectInputStream上课吗?我似乎无法找到关于差异的非常多的信息.
Boz*_*zho 24
defaultReadObject()调用默认的反序列化机制,并在您readObject()在Serializable类上定义方法时使用.换句话说,当您具有自定义反序列化逻辑时,您仍然可以返回到默认序列化,这将反序列化非静态非瞬态字段.例如:
public class SomeClass implements Serializable {
private String fld1;
private int fld2;
private transient String fld3;
private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException {
stream.defaultReadObject(); //fills fld1 and fld2;
fld3 = Configuration.getFooConfigValue();
}
]
Run Code Online (Sandbox Code Playgroud)
另一方面,从反序列化对象外部readObject()创建ObjectInputStream,并且想要读取先前序列化的对象时使用:
ObojectInputStream stream = new ObjectInputStream(aStreamWithASerializedObject);
Object foo = (Foo) stream.readObject();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12695 次 |
| 最近记录: |