What's wrong with the following code?
Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
The code has the following error at the last line :
Exception in thread "main" java.lang.ClassCastException:
[Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
Best Answer
Ross, you can use Arrays.copyof() or Arrays.copyOfRange() too.
Here the reason to hitting an
ClassCastException
is you can't treat an array ofInteger
as an array ofObject
.Integer[]
is a subtype ofObject[]
butObject[]
is not aInteger[]
.And the following also will not give an
ClassCastException
.