The*_*Boy 2 java collections double casting exception
我试图在我的代码中处理很多源自单个关键点的 ClassCastExceptions。我将首先为这个问题提供一些背景信息
我正在从 csv 文件中读取不同类型的值。以下是包含它们的类的快照。
public class Row {
private Object[] data;
public Object getAtIndex(int i)
{
return data[i];
}
}
Run Code Online (Sandbox Code Playgroud)
为了保存文件的不同行,我使用了
ArrayList<Row> rows;
Run Code Online (Sandbox Code Playgroud)
的问题在于一个函数,其应该返回存储在该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;
}
Run Code Online (Sandbox Code Playgroud)
这个 getByIndex() 在调用时抛出 ClassCastExceptions。我确保只为那些预计具有 Double 值的列调用此函数。有没有其他方法可以促进此 Object 到 Double 的转换。由于这个问题,我的进度停滞了。请帮忙。
代替
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);
Run Code Online (Sandbox Code Playgroud)
只需使用以下内容:
result[j]=(Double)rows.get(j).getAtIndex(i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26736 次 |
| 最近记录: |