考虑一下我的java类中有10个字段的情况。我想要的是,对其中的一些(例如3)做一些特殊的处理,其余的字段通过默认的ObjectOutputStream实现被序列化。有没有办法实现这个目标?
我可以在我的类中提供writeObject(ObjectOutputStream os)的实现来专门处理这3个字段,但是如何默认其余的字段。
感谢
答案 0 :(得分:3)
您可以执行以下操作:
writeObject(ObjectOutputStream out)
并使用此方法:ObjectOutputStream.defaultWriteObject()
以默认方式编写所有其他字段并添加模拟实现以读取对象。
public class MyClass implements Serializable
{
private void writeObject(java.io.ObjectOutputStream out) throws IOException
{
out.defaultWriteObject();
// add code to write the special fields
}
private void readObject(java.io.ObjectInputStream in) throws IOException
{
in.defaultReadObject();
// add code to read the special fields
}
private transient int special1;
...
}