java父类没有无参数构造函数_关于父类没有无参构造函数的反序列化问题

class Bar {

Bar()

{

a = 1;

System.out.println("Bar..." + a);

}

protected int a;

}

class Bar1 extends Bar implements Serializable

{

Bar1(double b)

{

this.b = b;

System.out.println("Bar1..." + b);

}

Bar1()

{

this.b = 1.5;

System.out.println("Bar1..." + b);

}

protected double b;

}

class Bar2 extends Bar1

{

/**

*

*/

private static final long serialVersionUID = 270589360374420361L;

Bar2()

{

super();

c = 3;

System.out.println("Bar2..." + c);

}

protected int c;

}

代码是这样的,主函数里面是:

String file = "C:\\JAVA\\1.txt";

Bar2 bar2 = new Bar2();

//  objectSerialize(bar2, file);

objectDeserialize(bar2, file);

System.out.println(bar2);

抛出了一坨异常:

Exception in thread "main" java.io.InvalidClassException: com.clcl.io.Bar1; local class incompatible: stream classdesc serialVersionUID = 7973625721886668699, local class serialVersionUID = -1556330232670652696

at java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:689)

at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1894)

at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1763)

at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1894)

at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1763)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2051)

at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1585)

at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)

at com.clcl.io.FileTest.objectDeserialize(FileTest.java:83)

at com.clcl.io.FileTest.main(FileTest.java:44)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值