| SE450: Singleton: Cloning and serialization [22/32] | ![]() ![]() ![]() |
Dissallow cloning in singleton classes.
final class SLinux implements S { // ... private Object readResolve() throws java.io.ObjectStreamException { return SObject.get(); } } final class SOther implements S { // ... private Object readResolve() throws java.io.ObjectStreamException { return SObject.get(); } }
readResolve() is called after an object is
deserialized.
Normally readResolve() cleans up the object a
little and returns this, but here we want it to
throw away the deserialized object.