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

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

Java泛型有哪些?怎么用?

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

泛型接口和類

泛型類和接口上面已經演示過了,定義方式類似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泛型有哪些?怎么用?”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 午夜国产福利在线 | 夜夜爽毛片 | 中文字幕亚洲欧美一区 | 国产资源一区 | 天天射天天操天天色 | 日韩成人伦理 | 深夜精品影院18以下勿进 | 亚洲精品高清在线一区二区三区 | 亚洲欧美日韩国产精品第不页 | 点击进入不卡毛片免费观看 | 四虎在线影视在线影库 | 丁香狠狠色婷婷久久综合 | 在线亚洲精品 | 欧美精品网 | 爱爱免费观看高清视频在线播放 | 国产成人小视频 | 香蕉视频网站在线观看 | 青青草国产一区二区三区 | 国产免费无遮挡精品视频 | 久久国产在线视频 | 亚洲精品色 | 天天干干 | 91精品久久国产青草 | 成人在线免费网站 | 亚洲欧美日韩中文字幕网址 | 高清视频一区 | 天天干狠狠操 | 久草视频观看 | 99国产高清久久久久久网站 | 久久99国产精品成人 | 中文字幕亚洲一区婷婷 | 三级西施 | 国产一级毛片国语版 | 亚洲国产激情 | 国产精品久久久久久久伊一 | 国产精品久久久久久久久99热 | 四虎影视库永久在线地址 | 91九色视频 | 天天干夜夜爽 | 国产精品亚洲成在人线 | 中文字幕一区二区三区精品 |