同じ形式で数値の種類が異なるいくつかの文字列 (数値を含む) を解析し、これらの数値を関連する配列に設定したいと考えています。たとえば、次の文字列があります: " "positions":[[35.23,436.34],[23.5, 7.1]] これらの数値を "this" という名前の float 配列に入れたい! この文字列に対して "indices":[[ 23,4],[2,1]]" "that" という名前の整数配列に入れたい!
そのために、次の宣言を使用してジェネリック関数を作成しました。
private <E extends Number> voidfunc(ArrayList<E> array, String JSON){
.
.
array.add((E) NumberFormat.getInstance().parse(JSON.substring(...)));
.
.
}
これはうまく機能し、数値を配列に正しく入れますが、後で、アプリのどこかで「クラスキャスト例外。Double を Float にキャストできません」というエラーが発生します。
floatArray[i] = temp.get(i);
temp は float 配列リストとして定義され、上記の関数で満たされています。
なぜそうなのか、どうすれば解決できるのか教えてもらえますか? 本当に感謝しています。