泛型方法,是在調用方法的時候指明泛型的具體類型。
定義泛型方法語法格式:
調用泛型方法語法格式:
說明一下,定義泛型方法時,必須在返回值前邊加一個,來聲明這是一個泛型方法,持有一個泛型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一次,可能不夠靈活;而泛型方法可以在調用的時候指明類型,更加靈活。