簡介
泛型數組,其中數組元素共享一個由於泛型和數組的協變行為之間的相互作用,通用類型參數在Java 中提出了獨特的挑戰。
問題
我們能否建立一個泛型數組,其中泛型類型擴充了 Comparable?嘗試將物件數組轉換為擴展 Comparable 的通用數組面臨問題,引發以下問題:有解決方法嗎?
答案
泛型和陣列:相容性難題
泛型和陣列處理類型的方式截然不同:
由於這種不匹配,創建一個泛型數組擴展特定類別的類型是不可能的。
Array.newInstance():一個解決方法
一個潛在的解決方案是使用Array.newInstance() 方法:
<code class="java">private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);</code>
此方法可讓您建立泛型類型的超類型的陣列(在本例中為Comparable),但需要注意的是,該陣列不是所需的泛型類型。
為什麼不將陣列與泛型一起使用?
雖然有解決方法,但通常不鼓勵將數組與泛型一起使用,因為:
替代方案:ArrayList
更合適的選擇是使用ArrayList ,它提供了一種有效且類型安全的方法來管理通用物件的集合。 ArrayList 提供了泛型的靈活性,並避免了與陣列和泛型相關的潛在陷阱。
以上是我們可以在 Java 中建立擴展 Comparable 的通用數組嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!