Java 中的泛型陣列
陣列和泛型在 Java 中造成了程式設計障礙。您無法直接建立參數類型陣列。這是因為陣列是協變的,這意味著它們在運行時保留其元素的類型,而泛型使用類型會擦除。
解決方法是使用 Array.newInstance(),如下所示:
private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);
但是,需要注意的是,這個解決方案並不理想。
為什麼不使用泛型陣列?
為了避免這些問題,建議使用泛型時使用 ArrayList 而不是陣列。 ArrayList 是協變且類型安全的,這使得它們成為儲存泛型類型的更好選擇。
更詳細的說明,請參閱 Java 泛型常見問題:
我可以建立一個元件類型為特定參數化類型的陣列嗎?
不可以,因為它不是類型安全的。
數組是協變的,這意味著超類型引用數組是子類型引用數組的超類型。也就是說,Object[] 是 String[] 的超類型,可以透過 Object[] 類型的引用變數來存取字串陣列。
以上是為什麼我無法在 Java 中建立通用數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!