黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java方法泛型之泛型類、泛型接口和泛型方法

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

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

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

Java方法泛型之泛型類、泛型接口和泛型方法

泛型類

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

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

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

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

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

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

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

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

泛型接口

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

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

然后定義一個(gè)生成器類來(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è)類泛化,那么應(yīng)該有限采用泛型方法。下面來(lái)看一個(gè)簡(jiǎn)單的泛型方法的定義:

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

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

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

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

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

Java方法泛型之泛型類、泛型接口和泛型方法

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

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

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

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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 黄色网在线播放 | 成年人免费在线看 | 欧美成a人片免费看久久 | 亚洲国产一区在线 | 亚洲精品天堂 | 日批视频免费观看 | 日本黄色免费在线 | 日本视频一区二区 | 成人动漫在线免费观看 | 中文字幕 一区 婷婷 在线 | 福利所第一导航 | 丁香伊人五月综合激激激 | 国产线路一 | 午夜在线播放免费人成无 | 国产小视频在线免费观看 | 精品综合在线 | 欧美成人手机视频免费播放 | 高清一区在线 | 精品国产日韩亚洲一区二区 | 国产欧美日韩在线不卡第一页 | 国产成人精品日本亚洲11 | 黄免费视频 | 中文字幕第3页 | 欧美成人免费做真爱大片 | 日韩日韩日韩手机看片自拍 | 天天射寡妇射 | 91短视频在线观看免费最新 | 国产一区亚洲二区三区 | 手机在线视频一区 | 翁熄性荡事最新篇王伟忠 | 婷婷深爱网 | 成人免费观看一区二区 | 日本免费影院 | 国产成人aaa在线视频免费观看 | 日韩激情小说 | 超级碰在线观看 | 韩国2023理伦片免费观看 | 日本jav护士hd | 在线观看中文字幕亚洲 | 天天躁 | 免费在线欧美 |