實例化泛型:揭開秘密
在Java 程式設計領域,泛型透過啟用類別和方法的聲明提供了巨大的靈活性可以對各種資料類型進行操作,而不需要明確類型轉換。然而,實例化泛型類型的物件帶來了一個挑戰,乍看之下似乎微不足道,但我們將深入研究證明並非如此的解決方案。
考慮類別聲明:
public class Abc<T> { public T getInstanceOfT() { // Here's where we aim to create an instance of T and return it. } }
要在 getInstanceOfT 方法中實例化類型 T 的對象,我們必須克服編譯時缺乏有關實際類型參數的資訊。 Java 字節碼不會保留此訊息,因此在沒有明確規定的情況下無法存取它。
解決方案在於擁抱 Java 的動態功能。我們可以修改方法以接受實際類型類別作為參數:
public class Abc<T> { public T getInstanceOfT(Class<T> aClass) { return aClass.newInstance(); } }
透過傳遞實際類型類,如Class
請記住,實例化泛型類型需要在執行時間明確提供實際類型,因為它在編譯時仍然未知。應對這項挑戰揭示了泛型的真正本質,並證明了 Java 程式設計的力量和技巧。
以上是如何在Java中實例化泛型類型的物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!