第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于父類沒有無參構(gòu)造函數(shù)的反序列化問題

有沒有發(fā)現(xiàn)一個(gè)問題,如果我們定義三個(gè)類Bar ?Bar1 ?Bar2,其中Bar2實(shí)現(xiàn)了serializable接口,Bar1沒有無參構(gòu)造函數(shù),那么在對(duì)Bar2進(jìn)行反序列化的時(shí)候會(huì)拋出異常,請(qǐng)問這種情況應(yīng)該怎么解決呀

正在回答

3 回答

我這里用你的沒有一點(diǎn)問題誒? 是不是main函數(shù)有問題

你把序列、反序列封裝成函數(shù),那我的main函數(shù)是這樣的:

ObjectOutputStream oos = new ObjectOutputStream(

? ? ? ? ? ? ? ? new FileOutputStream("demo/obj2.dat")

? ? ? ? );

? ? ? ? Bar2 bar2 = new Bar2();

? ? ? ? oos.writeObject(bar2);

? ? ? ? oos.flush();

? ? ? ? oos.close();


//? ? ? ? ObjectInputStream ois = new ObjectInputStream(

//? ? ? ? ? ? ? ? new FileInputStream("demo/obj2.dat")

//? ? ? ? );

//? ? ? ? Bar2 bar2 = (Bar2)ois.readObject();

//? ? ? ? System.out.println(bar2);

//? ? ? ? ois.close();


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_Divergent_2 提問者

找到問題了,我貌似忘記序列化了[?]
2018-03-03 回復(fù) 有任何疑惑可以回復(fù)我~
#2

zjxjwxk 回復(fù) qq_Divergent_2 提問者

那是我第一個(gè)回答???
2018-03-03 回復(fù) 有任何疑惑可以回復(fù)我~
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;
?
}
代碼是這樣的,主函數(shù)里面是:
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 回復(fù) 有任何疑惑可以回復(fù)我~
#1

zjxjwxk

你確定是這個(gè)版本的代碼? 和問的不一樣啊
2018-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#2

zjxjwxk

我覺得你說的Bar1沒有無參構(gòu)造函數(shù)的話 那Bar2的super()不是要報(bào)錯(cuò)了嘛
2018-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#3

qq_Divergent_2 提問者 回復(fù) zjxjwxk

Bar1(double b) { this.b = b; System.out.println("Bar1..." + b); } Bar1() { this.b = 1.5; System.out.println("Bar1..." + b); } bar1是有無參構(gòu)造函數(shù)的
2018-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#4

qq_Divergent_2 提問者 回復(fù) zjxjwxk

問的時(shí)候可能描述的有點(diǎn)問題,具體的問題看代碼吧,表述能力有點(diǎn)問題[笑哭]
2018-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

我試了一下沒有問題呀

需要注意的是,如果你修改了Bar1就需要重新序列化一次

不能直接進(jìn)行反序列的吧?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_Divergent_2 提問者

我的代碼看我的評(píng)論吧,回復(fù)有字?jǐn)?shù)限制,謝謝啦
2018-03-02 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于父類沒有無參構(gòu)造函數(shù)的反序列化問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)