將物件陣列轉換為整數陣列: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中文網其他相關文章!