Jér*_*nge 3 java serialization findbugs
我在一些代码上运行findbugs并且它说readObject(...)方法必须是私有的才能被调用以进行序列化/反序列化?为什么?如果它被公开会有什么问题?
关于readObject()/writeObject()私人,这是交易:如果你的班级延伸一些类Foo; Foo也实现了readObject()/writeObject(),Bar也实现了readObject()/writeObject().
现在,当Bar对象被序列化或反序列化时,JVM需要readObject()/writeObject()自动调用Foo和Bar(即不需要显式调用这些超类方法).但是,如果这些方法不是私有的,那么它将成为方法重写,并且JVM不能再调用子类对象上的超类方法.
因此他们必须是私人的!