[英]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.Student
是Array 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.