亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如圖所示 出現這種差異的原因

如圖所示https://img1.sycdn.imooc.com//5b15675d00014eb606100375.jpg



https://img1.sycdn.imooc.com//5b1567720001528706940418.jpg

下面是老師寫的 上面是我寫的?

不是說實現了序列化接口的類的構造函數不會被調用嗎 ??

正在回答

4 回答

問題原因:

//由于你的代碼多了下面這一行
Bar2?bar2?=?new?Bar2();
//新建一個Bar2對象。調用new方法時,程序會自動調用Bar2的構造方法
//你控制臺多出那一行bar2,就是這個Bar2的構造方法輸出的

解決方法:

//注釋掉或者直接刪除下面這行代碼可以得到和老師同樣的結果
//Bar2?bar2?=?new?Bar2();
//該程序是為了測試反序列化得到對象是否調用其構造方法
//因此重新新建一個Bar2的實體對象是完全沒有必要的,反而會混淆測試結果
0 回復 有任何疑惑可以回復我~
#1

yyz要學java 提問者

非常感謝!
2018-06-27 回復 有任何疑惑可以回復我~
#2

yyz要學java 提問者

I got it.
2018-06-27 回復 有任何疑惑可以回復我~
#3

HungerCheung 回復 yyz要學java 提問者

我的回答可以對您有所幫助。如果你在學習與工作用有什么關于java se的基礎問題,可以私我。我會盡快回復。
2018-06-28 回復 有任何疑惑可以回復我~
#4

yyz要學java 提問者 回復 HungerCheung

Ok 感謝大佬
2018-06-28 回復 有任何疑惑可以回復我~
查看1條回復

既然新建了一個Bar2的對象,執行構造方法時,為什么不依次輸出Bar Bar1 Bar2,而是只輸出了bar2呢?

0 回復 有任何疑惑可以回復我~

這個還真沒有 如果同時進行的話好像會報錯的

0 回復 有任何疑惑可以回復我~

你是不是同時進行序列化和反序列化?這樣是不行的,要先進行序列化時把反序列化注釋掉,進行反序列化時把序列化注釋掉。因為在序列化時會對子類進行實例化,然后會調用子類和父類的所有構造方法,在進行反序列化時如果不將序列化注釋掉你就分不清構造函數到底是實例化時打印的還是序列化接口類調用的,希望對你有幫助

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

如圖所示 出現這種差異的原因

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號