亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

  java 泛型方法:

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

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

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

       定義泛型方法語(yǔ)法格式如下:

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

        說(shuō)明一下,定義泛型方法時(shí),必須在返回值前邊加一個(gè)<T>,來(lái)聲明這是一個(gè)泛型方法,持有一個(gè)泛型T,然后才可以用泛型T作為方法的返回值。

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    JAVA連接到SQLserver的步驟方法以及遇到的問(wèn)題

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論