【发布时间】:2016-09-07 23:46:32
【问题描述】:
我想从array 中删除routedClients 中的元素,所以我将其转换为ArrayList,然后使用remove,最后将其转换回double[][] 数组。但是当我执行它时,它给了我关于这一行的信息:
double[][] remainingStockout = (double[][]) stockout.toArray();
错误是:
线程“main”中的异常 java.lang.ClassCastException: [Ljava.lang.Object;不能转换为 [[Ljava.lang.Double;
任何帮助将不胜感激。 :)
public double[][] removeSite(double[][] array) {
List<double[]> stockout = new ArrayList<double[]>(Arrays.asList(array));
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < routedClients.size(); j++) {
if (array[i][0] == routedClients.get(j)) {
stockout.remove(i);
}
}
}
double[][] remainingStockout = (double[][]) stockout.toArray();
return remainingStockout;
}
【问题讨论】:
-
您使用的数组似乎是原始类型,请尝试以下代码并确认它是否有效(使用 Double 而不是 double): Double[][] remainingStockout = (Double[][]) stockout.toArray();
-
它仍然给我一个异常:线程“main”中的异常 java.lang.ClassCastException: [Ljava.lang.Object;不能转换为 [[Ljava.lang.Double;
-
能否调试打印stockout.toArray()返回的类型是什么;
标签: java arrays arraylist multidimensional-array casting