java - 线程“主”java.lang.ClassCastException 中的异常
问题描述
import java.io.*;
class rak implements Serializable{
int i;
}
public class Main {
public static void main(String[] args) throws Exception {
// write your code herer
rak r = new rak();
r.i = 9;
File f = new File("da.txt");
FileOutputStream f1 = new FileOutputStream(f);
ObjectOutputStream oos = new ObjectOutputStream(f1);
oos.writeObject("value of i is" + r.i);
FileInputStream f0 = new FileInputStream(f);
ObjectInputStream f9 = new ObjectInputStream(f0);
rak r1 = new rak();
r1 = (rak) f9.readObject();
System.out.println(r1.i);
}
}
解决方案
你序列化一个String
:
rak r = new rak();
...
oos.writeObject("value of i is" + r.i);
然后将反序列化结果转换为rak
对象:
r1 = (rak) f9.readObject();
而ClassCastException
: aString
不是rak
.
如果要反序列化 a rak
,请序列化它,而不仅仅是它的一个字段,例如:
oos.writeObject(r);
推荐阅读
- ios - 如何在 Objective-C 中将 JSON 数组分配给另一个 JSON 数组
- c# - 如何模拟实例方法
- c# - 智能卡阻止访问 Outlook 中的邮件项目
- python - trace32 使用 python - 使用函数 T32_ReadMemoryObj
- c# - 如果抛出异常,程序是否会停止
- python - 获取符合条件的目录列表
- bash - GNU sed:使用 s 命令在模式空间后打印新行
- amazon-web-services - 如何为已部署的 AWS 资源获取云形成模板
- javascript - 函数 window.focus() 对 opener 对象不起作用
- r - 如何将用户输入中的列添加到现有数据框中?