Home > Java > javaTutorial > Why Does Casting an Object Array to an Integer Array Result in a ClassCastException?

Why Does Casting an Object Array to an Integer Array Result in a ClassCastException?

Patricia Arquette
Release: 2024-10-27 13:03:01
Original
1040 people have browsed it

Why Does Casting an Object Array to an Integer Array Result in a ClassCastException?

Why the Casting from Object Array to Integer Array Raises a ClassCastException

The following code snippet encounters an error:

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

The error, "java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;", occurs in the last line.

Reason:
The problem arises because you cannot treat an array of integers as an array of objects. While Integer[] is a subtype of Object[], Object[] is not a subtype of Integer[].

Therefore, attempting to cast an Object[] to an Integer[] results in a ClassCastException.

Alternative Code:
To address this issue, use one of the following methods:

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

Alternatively, you can prevent the ClassCastException by ensuring that the array elements are all of type Integer, as in the following correct code:

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

The above is the detailed content of Why Does Casting an Object Array to an Integer Array Result in a ClassCastException?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template