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

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java方法泛型之泛型類(lèi)、泛型接口和泛型方法

Java方法泛型之泛型類(lèi)、泛型接口和泛型方法

更新時(shí)間:2020-06-01 16:24:48 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3050次

泛型出現(xiàn)的動(dòng)機(jī)在于:

有許多原因促成了泛型的出現(xiàn),而最引人注意的一個(gè)原因,就是為了創(chuàng)建容器類(lèi)。

Java方法泛型之泛型類(lèi)、泛型接口和泛型方法

泛型類(lèi)

容器類(lèi)應(yīng)該算得上最具重用性的類(lèi)庫(kù)之一。先來(lái)看一個(gè)沒(méi)有泛型的情況下的容器類(lèi)如何定義:

public class Container{private String key;private String value;public Container(String k,String v){

Container類(lèi)保存了一對(duì)key-value鍵值對(duì),但是類(lèi)型是定死的,也就說(shuō)如果我想要?jiǎng)?chuàng)建一個(gè)鍵值對(duì)是String-Integer類(lèi)型的,當(dāng)前這個(gè)Container是做不到的,必須再自定義。那么這明顯重用性就非常低。

當(dāng)然,我可以用Object來(lái)代替String,并且在Java SE5之前,我們也只能這么做,由于Object是所有類(lèi)型的基類(lèi),所以可以直接轉(zhuǎn)型。但是這樣靈活性還是不夠,因?yàn)檫€是指定類(lèi)型了,只不過(guò)這次指定的類(lèi)型層級(jí)更高而已,有沒(méi)有可能不指定類(lèi)型?有沒(méi)有可能在運(yùn)行時(shí)才知道具體的類(lèi)型是什么?

所以,就出現(xiàn)了泛型。

public class Container<K,V>{private K key;private V value;public Container(K k,V v){

在編譯期,是無(wú)法知道K和V具體是什么類(lèi)型,只有在運(yùn)行時(shí)才會(huì)真正根據(jù)類(lèi)型來(lái)構(gòu)造和分配內(nèi)存。如果你想學(xué)習(xí)Java可以來(lái)這個(gè)群,首先是五三二,中間是二五九,最后是九五二,里面有大量的學(xué)習(xí)資料可以下載。可以看一下現(xiàn)在Container類(lèi)對(duì)于不同類(lèi)型的支持情況:

public class Main{public static void main(String[]args){
輸出:
name:findingsea

泛型接口

在泛型接口中,生成器是一個(gè)很好的理解,看如下的生成器接口定義:

public interface Generator<T>{public T next();

然后定義一個(gè)生成器類(lèi)來(lái)實(shí)現(xiàn)這個(gè)接口:

public class FruitGenerator implements Generator<String>{

調(diào)用:

public class Main{public static void main(String[]args){

輸出:

Banana

泛型方法

一個(gè)基本的原則是:無(wú)論何時(shí),只要你能做到,你就應(yīng)該盡量使用泛型方法。也就是說(shuō),如果使用泛型方法可以取代將整個(gè)類(lèi)泛化,那么應(yīng)該有限采用泛型方法。下面來(lái)看一個(gè)簡(jiǎn)單的泛型方法的定義:

public class Main{public static<T>void out(T t){

可以看到方法的參數(shù)徹底泛化了,這個(gè)過(guò)程涉及到編譯器的類(lèi)型推導(dǎo)和自動(dòng)打包,也就說(shuō)原來(lái)需要我們自己對(duì)類(lèi)型進(jìn)行的判斷和處理,現(xiàn)在編譯器幫我們做了。這樣在定義方法的時(shí)候不必考慮以后到底需要處理哪些類(lèi)型的參數(shù),大大增加了編程的靈活性。

再看一個(gè)泛型方法和可變參數(shù)的例子:

public class Main{public static<T>void out(T...args){for(T t:args){

輸出和前一段代碼相同,可以看到泛型可以和可變參數(shù)非常完美的結(jié)合。

Java方法泛型之泛型類(lèi)、泛型接口和泛型方法

Java相關(guān)技術(shù)內(nèi)容

Java泛型詳解:http://www.dabaquan.cn/tutorial_java_advance/645.html

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java方法泛型之泛型類(lèi)、泛型接口和泛型方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-07-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 九色九色九色在线综合888 | 亚洲成人高清在线观看 | 人与拘一级a毛片 | 亚洲精品国产一区二区 | 久久久久免费观看 | 亚洲精品日本一区二区在线 | 99国产小视频 | 国产亚洲男人的天堂在线观看 | 香蕉视频精品 | 天天爽夜夜爽天天做夜夜做 | 曰本一区 | 欧美日韩亚洲国内综合网香蕉 | 精品免费久久 | 欧美网站色 | 国产成人a v在线影院 | 一线视频日本 | 免费香蕉一区二区在线观看 | 亚洲另类 专区 欧美 制服 | 欧美激情亚洲激情 | 成人国产亚洲欧美成人综合网 | 视频一区日韩 | 中文字幕91在线 | 97狠狠干| 国产午夜精品理论片久久影视 | 国产精品国产精品国产专区不卡 | 国产一区中文字幕在线观看 | 亚洲日本在线观看视频 | 日日摸夜夜添夜夜添影院视频 | 日本视频中文字幕一区二区 | 欧美做爱毛片 | 一区二区三区四区视频在线观看 | 久久福利青草精品免费 | 性色视频 | 国产一区视频在线免费观看 | 亚洲欧美一区二区三区二厂 | 日韩国产成人资源精品视频 | 国内第一永久免费福利视频 | 国产欧美精品一区二区三区-老狼 | 久久一er精这里有精品 | 成人毛片网 | 国产免费69成人精品视频 |