将对象数组转换为整数数组:ClassCastException 问题
尝试将对象数组转换为整数数组时,可能会出现 ClassCastException 错误。发生这种情况的原因是,尽管 Integer[] 是 Object[] 的子类型,但对象数组不能直接分配给整数数组。
考虑以下代码:
Object[] a = new Object[1]; Integer b=1; a[0]=b; Integer[] c = (Integer[]) a;
此代码生成 ClassCastException,因为最后一行尝试将 Object 数组分配给 Integer 数组。要解决此问题,必须手动将 Object 数组的元素复制到新创建的 Integer 数组。
Integer[] intArray = new Integer[a.length]; for (int i = 0; i < a.length; i++) { intArray[i] = (Integer) a[i]; }
或者,可以使用 Arrays.copyOf() 或 Arrays.copyOfRange() 方法:
Integer[] intArray = Arrays.copyOf(a, a.length, Integer[].class); Integer[] intArray = Arrays.copyOfRange(a, 0, a.length, Integer[].class);
以上是如何在 Java 中安全地将对象数组转换为整数数组?的详细内容。更多信息请关注PHP中文网其他相关文章!