關(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)該怎么解決呀
有沒有發(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)該怎么解決呀
2018-02-24
舉報(bào)
2018-03-02
我這里用你的沒有一點(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();
2018-03-02
2018-02-27
我試了一下沒有問題呀
需要注意的是,如果你修改了Bar1就需要重新序列化一次
不能直接進(jìn)行反序列的吧?