首頁 > Java > java教程 > 為什麼 Java 中的 Arrays.asList() 不自動裝箱原始陣列?

為什麼 Java 中的 Arrays.asList() 不自動裝箱原始陣列?

Mary-Kate Olsen
發布: 2024-12-28 16:06:11
原創
433 人瀏覽過

Why Doesn't `Arrays.asList()` Autobox Primitive Arrays in Java?

Arrays.asList() 難題:了解其限制

在Java 中,Arrays.asList 方法提供了一種轉換數組的便捷方法到一個清單中。但是,在處理原始數組(例如 float[])時,我們會遇到異常。

此程式碼片段如預期運作,建立了Integer 物件清單:

List<Integer> list = Arrays.asList(1,2,3,4,5);
登入後複製

在另一方面,以下程式碼無法建立List:

int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);
登入後複製

相反,輸出是List,突顯Arrays.asList 與原始陣列的行為差異。

  • 為什麼會發生這種情況?

Arrays.asList 接受一個 varargs 參數,它是陣列的語法簡寫。但是,在基元的情況下,它將整個陣列視為單一元素,而不是每個基元值。這會產生一個包含基元數組的 List,而不是包裝為物件的單一基元值。

  • 可以更正嗎?

不幸的是,沒有直接的方法將 int[] 轉換為 List使用Arrays.asList。為了實現這一目標,必須求助於外部程式庫或自訂程式碼。

  • 為什麼自動裝箱在這裡不起作用?

自動裝箱通常會轉換基元到其對應的包裝物件中以在物件集合中使用。但是,當應用於基元數組時,它不會按元素發生。此限制源於 Java 不支援數組自動裝箱這一事實。

以上是為什麼 Java 中的 Arrays.asList() 不自動裝箱原始陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板