単一の重要なポイントから発生した、コード内の多くの ClassCastExceptions を処理しようとしています。この質問の背景情報を提供することから始めます
csv ファイルからさまざまな種類の値を読み取っています。以下は、それらを保持するクラスのスナップショットです。
public class Row {
private Object[] data;
public Object getAtIndex(int i)
{
return data[i];
}
}
ファイルのさまざまな行を保持するために、私は
ArrayList<Row> rows;
問題は、 ArrayList に格納されている特定の列の値を含む Double[] を返すはずの関数にあります。私の現在の機能は次のようになります
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 への変換を容易にする他の方法はありますか? この問題のため、進行が止まっています。助けてください。