大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java泛型有哪些?怎么用?

Java泛型有哪些?怎么用?

更新時間:2020-08-04 16:38:23 來源:動力節點 瀏覽2429次

泛型接口和類

泛型類和接口上面已經演示過了,定義方式類似class A;這樣。需要注意一點,在實現泛型接口時可以選擇傳入泛型實參或者不傳實參,傳入實參時實現類不需要聲明為泛型,實現類中所有使用泛型的地方都要轉為實參。不傳入實參時,實現類也要聲明為泛型。

泛型方法

泛型方法能夠使方法獨立與類而產生變化,Java編程思想一書中有一個指導原則,無論何時,只要能做到,就應該盡量使用泛型方法。也就是說,如果使用泛型方法可以取代將整個類泛型化,那么就應該只使用泛型方法。另外,對于一個static的方法而言,無法訪問泛型類的類型參數,所以,如果static方法需要使用泛型能力,就必須使其成為泛型方法。

看一個簡單例子:

Java泛型有哪些?怎么用?

首先上面這個類是普通類,并不是一個泛型類。這個類有一個泛型方法,這個方法可以靜態的也可以是靜態的,我這里選擇用靜態方法。方法get很簡單,就是打印出參數的類型。在定義方法的時候,并不知道要傳入的方法類型,只有在編譯時期根據傳入的參數類型,可以推斷出泛型的實參,例如傳入的1,編譯器可以推斷出泛型參數類型為Integer,傳入“1”,編譯器可以推斷出泛型參數類型為String,傳入1.0編譯器可以推斷出泛型參數類型為Double。這個叫做參數類型推斷。

看下上面代碼執行結果:

Java泛型有哪些?怎么用?

代碼的執行結果證明了泛型方法不需要顯式的指明參數類型,可以推斷參數類型。類型推斷只對賦值操作有效,其他時候并不起作用。如果你將一個泛型方法調用的結果(例如New.map())作為參數,傳遞給另一個方法,這時編譯器并不會執行類型推斷。

綜上所述,當使用泛型類時候,必須在創建對象的時候指定類型的參數值,而使用泛型方法的時候,通常不必指明參數類型,因為編譯器會找出具體的類型。

通配符

在定義泛型過程中會經常遇到不同的通配符,例如T,E,K,V,?等,這些其實沒什么區別,但是默認情況下有一些約定:

T表示一個java類型。

E表示元素Element,表示容器中的元素。

K V(key Value)分別代表java鍵值中的Key Value。

?表示不確定的java類型。

通配符一般可以分為無界通配符,上界通配符和下界通配符。

定義方式如下:

Java泛型有哪些?怎么用?

但是上界通配符和下屆通配符是具有局限性的。在上圖的list中,上界通配符定義的list只能get數據,且類型為Fruit,add的時候會報錯。下界通配符定義的list只能add數據,get數據返回的只能是object,詳細信息會全部丟失。

以上就是動力節點java培訓機構的小編針對“Java泛型有哪些?怎么用?”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产极品白嫩美女在线观看看 | 日韩 欧美 国产 亚洲 中文 | 四虎影视地址 | 狠狠久久综合伊人不卡 | 欧美乱妇高清视频免欢看关 | 久久九九视频 | 免费日韩毛片 | 涩涩色视频在线播放 | 奇米网第四色 | 一级不卡毛片免费 | 天天摸夜夜摸夜夜狠狠摸 | 欧美一级人与动毛片免费播放 | 国产精品线在线精品国语 | 国产激情一区二区三区四区 | 国产精品久久免费 | 久9视频这里只有精品8 | 性久久久久久久久久 | 国内精品久久久久影院老司 | 免费h片网站| 中文字幕第一区 | 久久久久久在线 | 成人激情在线视频 | 国内精品久久久久久久影视麻豆 | 亚洲一级毛片在线观 | 久久99精品久久久久久臀蜜桃 | 亚洲一区二区三区高清网 | 久久久精品国产四虎影视 | 欧美久在线观看在线观看 | 成人 亚洲 | 成人亚洲综合 | 日韩精品中文字幕一区三区 | 国产精品_国产精品_国产精品 | 全部在线播放免费毛片 | 2020国产精品永久在线观看 | 成人在线视频免费观看 | 日日操日日爽 | 蕾丝视频在线看片国产 | 97在线视频99播放 | 在线观看亚洲网站 | 欧美色成人tv在线播放 | 亚洲国产综合久久精品 |