首頁 > Java > java教程 > 主體

為什麼將物件數組轉換為整數數組會導致 ClassCastException?

Patricia Arquette
發布: 2024-10-27 13:03:01
原創
969 人瀏覽過

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

為什麼從物件陣列轉換為整數陣列會引發ClassCastException

以下程式碼片段遇到錯誤:

Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
登入後複製

錯誤, 「」java. lang.ClassCastException: [Ljava.lang.Object; 無法轉換為[Ljava.lang.Integer;”, 出現在最後一行。

原因:
出現問題的原因是您不能將整數陣列視為物件陣列。雖然 Integer[] 是 Object[] 的子類型,但 Object[] 不是 Integer[] 的子類型。

因此,嘗試將 Object[] 轉換為 Integer[] 會導致 ClassCastException。

替代程式碼:
要解決此問題,請使用以下方法之一:

Integer[] integerArray = Arrays.copyOf(a, a.length, Integer[].class);
Integer[] integerArray = Arrays.copyOfRange(a, 0, a.length, Integer[].class);
登入後複製

或者,您可以透過確保陣列來防止ClassCastException元素皆為Integer 類型,如以下正確程式碼所示:

Object[] a = new Integer[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
登入後複製

以上是為什麼將物件數組轉換為整數數組會導致 ClassCastException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!