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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我在下面的代碼中收到 ClassCastException 錯誤

我在下面的代碼中收到 ClassCastException 錯誤

翻翻過去那場雪 2023-03-17 16:03:11
我是 Java 的新手,我正在學習反序列化,在這樣做的同時我得到了 classcastexception我在一個班級進行序列化,在另一個班級進行反序列化連載zipfile f = new zipfile(30,"kavin");ArrayList<zipfile> a = new ArrayList<zipfile>(101);a.add(f);String file = "def.txt";try {    FileOutputStream fi = new FileOutputStream(file);    ObjectOutputStream s = new ObjectOutputStream(fi);    s.writeObject(f);    System.out.println(f.age);    s.close();    fi.close();} catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();}catch (IOException e){    e.printStackTrace();}反序列化String file = "def.txt";try {    FileInputStream fi = new FileInputStream(file);    ObjectInputStream s = new ObjectInputStream(fi);    f=(deserialization)s.readObject();    System.out.println(f.age);} catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();}catch (IOException e){    e.printStackTrace();} catch (ClassNotFoundException e){    e.printStackTrace();}}輸出線程“main”中的異常 java.lang.ClassCastException:demo2.zipfile 無法轉換為 demo2.deserialization at demo2.deserialization.main(deserialization.java:69)
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

在處理序列化時必須牢記以下幾點:

  1. 如果父類實現了 Serializable 接口,則子類不需要實現它,反之亦然。

  2. 只有非靜態數據成員通過序列化過程保存。

  3. 靜態數據成員和臨時數據成員不通過序列化過程保存。因此,如果您不想保存非靜態數據成員的值,則將其設為瞬態。

  4. 反序列化對象時,永遠不會調用對象的構造函數。

  5. 關聯對象必須實現 Serializable 接口。

嘗試查看您的代碼,找出上述情況之一是否是問題所在。

如需更多幫助,請參閱源代碼 - Java 中的序列化


查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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