泛型

很多年前就接觸泛型了(那時(shí)候用的是清華大學(xué)出版社出版的JAVA SE 2.0一本紫色封面的書)對(duì)于泛型的理解僅限于的形式,至于泛型的運(yùn)行機(jī)制,泛型與JVM的關(guān)系沒有過多的介紹,可能是作者覺得不重要吧(忍不住吐槽,太坑)

廢話不多說(shuō):我真正學(xué)習(xí)泛型是在工作一年之后,我發(fā)現(xiàn)大神寫的代碼帶了一堆的尖括號(hào),看都看不懂自慚形愧,甚至懷疑自己是不是科班出身的

Q1:為什么要使用泛型程序設(shè)計(jì)

為了實(shí)現(xiàn)代碼可以被多種類型的對(duì)象復(fù)用。例如ArrayList , T作為類型參數(shù)可以是Integer或者String自定義類也可以。

Q2:泛型程序設(shè)計(jì)的優(yōu)點(diǎn)

1.省掉了強(qiáng)制類型轉(zhuǎn)換,這也是我對(duì)于泛型認(rèn)識(shí)的唯一印象

沒有泛型之前代碼要這么寫,如果你的同事不告訴你ArrayList實(shí)際存的什么類型的,恭喜你中獎(jiǎng)了。。。。

ArrayListnameList =newArrayList(100);//add names

Stringsome = (String) nameList.get(0);

有泛型以后,使代碼的可讀性和安全性更好

ArrayListnameList =newArrayList(100);

2.泛型類和泛型方法

泛型類:

publicclassPair { ... }

publicclassArrayAlg {

????public staticTgetMiddle(T...a){

????????returna[a.length/2];

????}

}

Stringmidle = ArrayAlg.getMiddle("a","b","c");

泛型方法中類型變量放在修飾符(public static)后面放在返回值類型前面。

3.關(guān)鍵字extends作進(jìn)一步限定,如果類型T沒有實(shí)現(xiàn)Comparable接口那么調(diào)用min.compareTo(..)就會(huì)報(bào)錯(cuò)

public static Pairminmax(T[] a){

????if(a ==null|| a.length==0)

????????return null;

????Tmin = a[0];

????Tmax = a[0];

????for(inti =0;i < a.length;i++){

????????if(min.compareTo(a[i]) >0) min = a[i];

????????if(max.compareTo(a[i]) <0) min = a[i];

????}

????return newPair<>(min,max);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 引言:泛型一直是困擾自己的一個(gè)難題,但是泛型有時(shí)一個(gè)面試時(shí)老生常談的問題;今天作者就通過查閱相關(guān)資料簡(jiǎn)單談?wù)勛约簩?duì)...
    cp_insist閱讀 1,934評(píng)論 0 4
  • 泛型的定義及使用 1. 定義泛型: 2. 類中使用泛型 3. 使用泛型類 4. 使用泛型的優(yōu)勢(shì)? 多泛型變量的定義...
    xue57233閱讀 486評(píng)論 0 1
  • object 變量可指向任何類的實(shí)例,這讓你能夠創(chuàng)建可對(duì)任何數(shù)據(jù)類型進(jìn)程處理的類。然而,這種方法存在幾個(gè)嚴(yán)重的問題...
    CarlDonitz閱讀 1,020評(píng)論 0 5
  • 引言 泛型是Java中一個(gè)非常重要的知識(shí)點(diǎn),在Java集合類框架中泛型被廣泛應(yīng)用。本文我們將從零開始來(lái)看一下Jav...
    橫沖直撞666閱讀 464評(píng)論 0 0
  • 一個(gè)老是受班上同學(xué)欺負(fù)的瘦弱小男孩,因?yàn)閾碛幸环N特殊能力而強(qiáng)大:他能“ 偷別人的影子” ,因而能看見他人心事,聽...
    Hayley__閱讀 336評(píng)論 0 0

友情鏈接更多精彩內(nèi)容