我正在尝试处理我的代码中源自单个关键点的许多 ClassCastExceptions。我将首先为这个问题提供一些背景信息
我正在从 csv 文件中读取不同类型的值。以下是包含它们的类的快照。
public class Row {
private Object[] data;
public Object getAtIndex(int i)
{
return data[i];
}
}
为了保存文件的不同行,我使用的是
ArrayList<Row> rows;
问题在于一个函数应该返回一个 Double[] 包含存储在 ArrayList 中的特定列的值。我当前的功能看起来像这样
public Double[] getByIndex(int i)
{
Double[] result = new Double[rows.size()];
String temp;
for(int j=0;j<rows.size();j++)
{
temp =(String)rows.get(j).getAtIndex(i); //java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String
result[j]=Double.parseDouble(temp);
}
return result;
}
这个 getByIndex() 在调用时会抛出 ClassCastExceptions。我确保只为那些预期具有 Double 值的列调用此函数。有没有其他方法可以促进这个 Object 到 Double 的转换。由于这个问题,我的进度停滞不前。请帮忙。