gpt4 book ai didi

java - 将 Person 对象转换为字符串,给出类转换异常

转载 作者:行者123 更新时间:2023-12-01 17:24:21 24 4
gpt4 key购买 nike

我创建了一个Person对象类,它实现了Serialized接口(interface),它的构造函数中包含fname,lname,phone,address,并且我通过流将此类的对象存储在“.dat”文件中,我想要在 GUI 上显示这些联系人,因此当我尝试将 person 转换为字符串时,它会给出 ClassCastException,如果有人愿意提供帮助,我将不胜感激。

这是一个构造函数:

public Person(String fName, String lName, String add, String ph) {
//super();
this.fName = fName;
this.lName = lName;
this.add = add;
this.ph = ph;
}

这是 GUI 类代码:

public void windowOpened(WindowEvent e) {

FileInputStream fis;
ObjectInputStream ois;

try {
fis = new FileInputStream("person.dat");
ois = new ObjectInputStream(fis);
Person p = (Person) ois.readObject();
String obj = (String) p.toString(); // giving error at this line
StringTokenizer str = new StringTokenizer(obj, " ");

textField.setText(str.nextToken());
textField_3.setText(str.nextToken());
textArea.setText(str.nextToken());
// System.out.println(p);
ois.close();
fis.close();
} catch (Exception ee) {
System.out.println("Cannot Read File" + ee.getMessage());
ee.printStackTrace();
}
}

最佳答案

ClassCastException 更有可能出现在这里

Person p = (Person) ois.readObject();

在这一行中,强制转换是多余的,您可以将其删除,这样就不会在这里发生

String obj = (String) p.toString();

相同
String obj = p.toString();

但是,如果您没有运行代码的最新副本,则可能是您的程序没有执行其认为正在执行的操作。

关于java - 将 Person 对象转换为字符串,给出类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com