我正在制作Java作业的饭店点餐系统菜单。我将以程序的形式创建收据,该程序创建一个包含表内容的文本文件。但是,我在执行此操作时遇到了麻烦。我所有的表内容都是字符串。
这是用于导出表内容的代码:
try{
BufferedWriter bfw = new BufferedWriter(new FileWriter("Data.txt"));
for(int i = 0 ; i < tableSalesFood.getColumnCount() ; i++){
bfw.write(tableSalesFood.getColumnName(i));
bfw.write("\t");
}
for (int i = 0 ; i < tableSalesFood.getRowCount(); i++){
bfw.newLine();
for(int j = 0 ; j < tableSalesFood.getColumnCount();j++){
bfw.write((String)(tableSalesFood.getValueAt(i,j)));
bfw.write("\t");;
}
}
bfw.close();
}catch(Exception ex){
ex.printStackTrace();
}
单击按钮时,程序将返回异常错误:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
最佳答案
显然是由(String)(tableSalesFood.getValueAt(i,j)
引起的,您正在尝试将Integer转换为String。请确保您知道什么是ClassCastException
,例如参见此question。
您可以通过转换而不是强制转换来修复错误:
Objects.toString(tableSalesFood.getValueAt(i,j), "");
类
Objects
在java.util
包中定义。