Java序列化--忽略serialVersionUID验证

来源:互联网 发布:淘宝装修页尾代码 编辑:程序博客网 时间:2024/05/16 05:31
import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectStreamClass; public class FakeObjectInputStream extends ObjectInputStream{ public FakeObjectInputStream(InputStream in) throws IOException {  super(in);}public FakeObjectInputStream() throws SecurityException, IOException{  super();}@Overrideprotected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException{  ObjectStreamClass objInputStream = super.readClassDescriptor();  Class<?> localClass = Class.forName(objInputStream.getName());  ObjectStreamClass localInputStream = ObjectStreamClass.lookup(localClass);  if(localInputStream != null){    final long localUID = localInputStream.getSerialVersionUID();    final long objUID = objInputStream.getSerialVersionUID();    if(localUID != objUID){      return localInputStream;    }  }  return objInputStream;}}

0 0