簡體   English   中英

OIS的ClassCastException

[英]ClassCastException at OIS

我從蝙蝠文件中讀取對象時獲得CCE。

裝載機類:

public static void loader()throws IOException, ClassNotFoundException{
  try{
    FileInputStream fis = new FileInputStream("students.dat");
    ObjectInputStream ois = new ObjectInputStream(fis);
    while(true){
      try {
       stud = ois.readObject();
       student = (Student) stud;
       studentBag.add(student);
      }catch(EOFException e){
         break;
    }  
   i++;
  }
 ois.reset();
 ois.close();
 fis.close();
}catch(FileNotFoundException e) {
 System.out.println("File not found");
}

我收到的CCE錯誤就在這行:student =(Student)stud;

我收到的特定錯誤代碼是由以下原因引起的:java.lang.ClassCastException:[LBags.Student; 不能投放到Bags.Student

我也不確定它從哪里得到的LBags,學生...我沒有任何包或類或任何名為LBags的東西

字符串[LBags.StudentArray of Bags.Student的內部類型簽名。 第一個字符[表示數組, L表示引用類型。

因此,該消息表明您正在嘗試將Bags.Student數組Bags.Student轉換為Bags.Student ,這顯然是不可能的。 因此,您的序列化數據包含一個數組,而不是一個標量對象。

JNI文檔中提供了類型簽名的完整列表。 為了完整起見,以下是從該文檔復制的列表:

Type Signature

Z                          boolean
B                          byte
C                          char
S                          short
I                          int
J                          long
F                          float
D                          double
Lfully-qualified-class;    object of class
[type                      Array of type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM