Question: Is it possible to load the
new class instances from this file
using any tricks (except trivial
copying the class into old package and
then using the deserialization wrapper
logic)?
I don't think there are any other "tricks" you could use that don't involve at least a partial reimplementation of the serialization protocol.
It is possible to use readResolve() to
recover from moving/renaming the
class? If not, please, explain why.
No, because the deserialization mechanism will fail much earlier, at the stage where it tries to locate the class that's being deserialized - it has no way of knowing that a class in a different package has a readResolve()
method it's supposed to use.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…