欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的泛型方法詳解及簡單實(shí)例

 更新時間:2016年12月24日 14:15:22   投稿:lqh  
這篇文章主要介紹了Java中的泛型方法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下

  java 泛型方法:

泛型是什么意思在這就不多說了,而Java中泛型類的定義也比較簡單,例如:public class Test<T>{}。這樣就定義了一個泛型類Test,在實(shí)例化該類時,必須指明泛型T的具體類型,例如:Test<Object> t = new Test<Object>();,指明泛型T的類型為Object。

       但是Java中的泛型方法就比較復(fù)雜了。

       泛型類,是在實(shí)例化類的時候指明泛型的具體類型;泛型方法,是在調(diào)用方法的時候指明泛型的具體類型。

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

            調(diào)用泛型方法語法格式如下:

        說明一下,定義泛型方法時,必須在返回值前邊加一個<T>,來聲明這是一個泛型方法,持有一個泛型T,然后才可以用泛型T作為方法的返回值。

       Class<T>的作用就是指明泛型的具體類型,而Class<T>類型的變量c,可以用來創(chuàng)建泛型類的對象。

       為什么要用變量c來創(chuàng)建對象呢?既然是泛型方法,就代表著我們不知道具體的類型是什么,也不知道構(gòu)造方法如何,因此沒有辦法去new一個對象,但可以利用變量c的newInstance方法去創(chuàng)建對象,也就是利用反射創(chuàng)建對象。

       泛型方法要求的參數(shù)是Class<T>類型,而Class.forName()方法的返回值也是Class<T>,因此可以用Class.forName()作為參數(shù)。其中,forName()方法中的參數(shù)是何種類型,返回的Class<T>就是何種類型。在本例中,forName()方法中傳入的是User類的完整路徑,因此返回的是Class<User>類型的對象,因此調(diào)用泛型方法時,變量c的類型就是Class<User>,因此泛型方法中的泛型T就被指明為User,因此變量obj的類型為User。

       當(dāng)然,泛型方法不是僅僅可以有一個參數(shù)Class<T>,可以根據(jù)需要添加其他參數(shù)。

       為什么要使用泛型方法呢?因?yàn)榉盒皖愐趯?shí)例化的時候就指明類型,如果想換一種類型,不得不重新new一次,可能不夠靈活;而泛型方法可以在調(diào)用的時候指明類型,更加靈活。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 出現(xiàn)次數(shù)超過一半(50%)的數(shù)

    出現(xiàn)次數(shù)超過一半(50%)的數(shù)

    給出n個數(shù),需要我們找出出現(xiàn)次數(shù)超過一半的數(shù),下面小編給大家分享下我的實(shí)現(xiàn)思路及關(guān)鍵代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • Spring中使用JSR303請求約束判空的實(shí)現(xiàn)

    Spring中使用JSR303請求約束判空的實(shí)現(xiàn)

    這篇文章主要介紹了Spring中使用JSR303請求約束判空的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 關(guān)于replaceFirst使用時的注意事項(xiàng)

    關(guān)于replaceFirst使用時的注意事項(xiàng)

    這篇文章主要介紹了關(guān)于replaceFirst使用時的注意事項(xiàng),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • JAVA連接到SQLserver的步驟方法以及遇到的問題

    JAVA連接到SQLserver的步驟方法以及遇到的問題

    java相對于其他語言(例如c,c++等)連接數(shù)據(jù)庫要方便得多,下面這篇文章主要給大家介紹了關(guān)于JAVA連接到SQLserver的步驟方法及遇到的問題,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 解決ThingsBoard編譯報(bào)錯問題:Failure?to?find?org.gradle:gradle-tooling-api:jar:6.3

    解決ThingsBoard編譯報(bào)錯問題:Failure?to?find?org.gradle:gradle-too

    這篇文章主要介紹了ThingsBoard編譯報(bào)錯:Failure?to?find?org.gradle:gradle-tooling-api:jar:6.3,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • jar命令修改jar包中的application.yml配置文件

    jar命令修改jar包中的application.yml配置文件

    本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Java優(yōu)化重復(fù)冗余代碼的8種方式總結(jié)

    Java優(yōu)化重復(fù)冗余代碼的8種方式總結(jié)

    日常開發(fā)中,我們經(jīng)常會遇到一些重復(fù)代碼,最近小編優(yōu)化了一些系統(tǒng)中的重復(fù)代碼,用了好幾種的方式,感覺挺有用的,所以本文給大家講講優(yōu)化重復(fù)代碼的幾種方式
    2023-08-08
  • Java map存放數(shù)組并取出值代碼詳解

    Java map存放數(shù)組并取出值代碼詳解

    這篇文章主要介紹了Java map存放數(shù)組并取出值代碼詳解的相關(guān)內(nèi)容,小編覺得挺不錯的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10
  • SpringBoot超詳細(xì)講解@Value注解

    SpringBoot超詳細(xì)講解@Value注解

    在使用spring框架的項(xiàng)目中,@Value是經(jīng)常使用的注解之一。作用是將配置文件中的鍵對應(yīng)的值分配給某類內(nèi)帶注解的屬性。本文使您系統(tǒng)地了解@Value的用法。在使用Spring框架的項(xiàng)目中@Value是經(jīng)常使用的注解之一,其作用是將配置文件中的鍵對應(yīng)的值分配給某類內(nèi)帶注解的屬性
    2022-07-07
  • 詳解Java基礎(chǔ)之封裝

    詳解Java基礎(chǔ)之封裝

    這篇文章主要為大家介紹了Java基礎(chǔ)之封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論