java 泛型方法:
泛型是什麼意思在這裡就不多說了,而Java中泛型類別的定義也比較簡單,例如:public class Test{}。這樣就定義了一個泛型類別Test,在實例化該類別時,必須指明泛型T的具體類型,例如:Test
但是Java中的泛型方法就比較複雜了。
泛型類,是在實例化類別的時候指明泛型的特定類型;泛型方法,是在呼叫方法的時候指明泛型的特定類型。
定義泛型方法語法格式如下:
調用泛型方法語法格式>,來聲明這是一個泛型方法,持有一個泛型T,然後才可以用泛型T作為方法的回傳值。
Class的功能就是指明泛型的具體類型,而Class類型的變數c,可以用來創造泛型類別的物件。
為什麼要用變數c來建立物件呢?既然是泛型方法,就代表著我們不知道具體的類型是什麼,也不知道構造方法如何,因此沒有辦法去new一個對象,但可以利用變數c的newInstance方法去創建對象,也就是利用反射創建對象。
泛型方法要求的參數是Class
型,而Class.forName()方法的回傳值也是Class,因此可以用Class.forName()當參數。其中,forName()方法中的參數是何種類型,傳回的Class就是何種類型。在本例中,forName()方法中傳入的是User類別的完整路徑,因此傳回的是Class類型的對象,因此當呼叫泛型方法時,變數c的型別就是Class,因此泛型方法中的泛型T就被指明為User,因此變數obj的類型為User。 當然,泛型方法並非只可以有一個參數Class,可以依需求增加其他參數。 為什麼要使用泛型方法?因為泛型類別要在實例化的時候就指明類型,如果想換一種類型,不得不重新new一次,可能不夠靈活;而泛型方法可以在呼叫的時候指明類型,更加靈活。 感謝閱讀,希望能幫助大家,謝謝大家對本站的支持! 更多Java中的泛型方法詳解及簡單實例相關文章請關注PHP中文網!