[D 无法转换为 java.lang.Double
[D cannot be cast to java.lang.Double
我写了下面的代码。它收到此消息:
Exception in thread "main" java.lang.ClassCastException: [D cannot be cast to java.lang.Double
double[] xyz = {1, 11, 111, 2, 22, 222};
ArrayList array = new ArrayList();
array.add(xyz);
double[] vals = new double[array.size()];
vals[0] = (double) array.get(0);
vals[1] = (double) array.get(1);
vals[2] = (double) array.get(2);
我也在 Stack Overflow 上搜索并看到了一些 post,但它们对我来说意义不大。我该怎么办?
如果要将 double
个值的数组添加到 ArrayList,请执行以下操作:
Double[] xyz = {...};
ArrayList<Double> array = new ArrayList<>(); // note, use a generic list
array.addAll(Arrays.asList(xyz));
A List
无法存储基元,因此您必须存储 Double
值而不是 double
。如果你有一个现有的 double[]
变量,你可以使用 ArrayUtils.toObject()
来转换它。
实际上,您的问题是您试图将 'xyz' 的类型转换为双精度类型或 Wrapper 关联 (Double) 类型。
由于 java 无法将 'xyz' 的类型转换为双精度类型,因此 ClassCastException 被抛出。您应该尝试将 n double 添加到您的数组中(甚至在循环中):
ArrayList<Double> myListOfDouble = new ArrayList();
myListOfDouble.add(1.0);
然后使用 for 循环填充你的双 [] 值,如下所示:
for(int i = 0; i < myListOfDouble.size(); i++)
vals[i] = myListOfDouble.get(i);
我写了下面的代码。它收到此消息:
Exception in thread "main" java.lang.ClassCastException: [D cannot be cast to java.lang.Double
double[] xyz = {1, 11, 111, 2, 22, 222};
ArrayList array = new ArrayList();
array.add(xyz);
double[] vals = new double[array.size()];
vals[0] = (double) array.get(0);
vals[1] = (double) array.get(1);
vals[2] = (double) array.get(2);
我也在 Stack Overflow 上搜索并看到了一些 post,但它们对我来说意义不大。我该怎么办?
如果要将 double
个值的数组添加到 ArrayList,请执行以下操作:
Double[] xyz = {...};
ArrayList<Double> array = new ArrayList<>(); // note, use a generic list
array.addAll(Arrays.asList(xyz));
A List
无法存储基元,因此您必须存储 Double
值而不是 double
。如果你有一个现有的 double[]
变量,你可以使用 ArrayUtils.toObject()
来转换它。
实际上,您的问题是您试图将 'xyz' 的类型转换为双精度类型或 Wrapper 关联 (Double) 类型。
由于 java 无法将 'xyz' 的类型转换为双精度类型,因此 ClassCastException 被抛出。您应该尝试将 n double 添加到您的数组中(甚至在循环中):
ArrayList<Double> myListOfDouble = new ArrayList();
myListOfDouble.add(1.0);
然后使用 for 循环填充你的双 [] 值,如下所示:
for(int i = 0; i < myListOfDouble.size(); i++)
vals[i] = myListOfDouble.get(i);