一尘不染

Java将对象数组转换为整数数组错误

java

以下代码有什么问题?

Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;

该代码在最后一行有以下错误:

线程“主”中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Integer;


阅读 505

收藏
2020-03-12

共1个答案

一尘不染

可以使用Arrays.copyof()Arrays.copyOfRange()

Integer[] integerArray = Arrays.copyOf(a, a.length, Integer[].class);
Integer[] integerArray = Arrays.copyOfRange(a, 0, a.length, Integer[].class);

在这里点击的原因ClassCastException是你不能将的数组Integer视为的数组ObjectInteger[]是的子类型,Object[]Object[]不是的子类型Integer[]

并且以下内容也不会给出ClassCastException

Object[] a = new Integer[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
2020-03-12