Java中的泛型方法

2021-09-08 04:55:50 字數 877 閱讀 9856

泛型類,是在例項化類的時候指明泛型的具體型別;泛型方法,是在呼叫方法的時候指明泛型的具體型別

定義泛型方法語法格式如下:

呼叫泛型方法語法格式如下:

說明一下,定義泛型方法時,必須在返回值前邊加乙個,來宣告這是乙個泛型方法,持有乙個泛型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 泛型中的橋方法

bridge method 這個方法存在的意義?或者這個方法用來解決什麼問題呢?解決泛型遇到多型,jvm使用橋方法解決。舉例,泛型遇到多型。如下面的兩段 publicclasspair publicpair t first,t second publict getfirst publict gets...

JAVA 泛型類和泛型方法(靜態方法泛型)

泛型類定義的泛型,在整個類中有效。如果被方法是用,那麼 泛型類的物件明確要操作的具體型別後,所有要操作的型別就已經固定了。為了讓不同的方法可以操作不同型別,而且型別還不確定。那麼 可以將泛型定義在方法上。泛型類class demo public void print t t class generi...

JAVA 泛型類和泛型方法(靜態方法泛型)

泛型類定義的泛型,在整個類中有效。如果被方法是用,那麼 泛型類的物件明確要操作的具體型別後,所有要操作的型別就已經固定了。為了讓不同的方法可以操作不同型別,而且型別還不確定。那麼 可以將泛型定義在方法上。泛型類class demo public void print t t class generi...