自定義泛型

泛型字母

形式類型參數(shù)(formal

type parameters)即泛型字母

命名:泛型字母可以隨意指定,盡量使用單個的大寫字母(有時候多個泛型類型時會加上數(shù)字莲组,比如T1萍启,T2)

常見字母(見名知意)

?T:Type

?K V:Key Value

?E:Element

?泛型聲明形式之一:泛型類余寥、接口

需求:定義學生類怎爵,其中有學生成績

?整數(shù)

?小數(shù)

字符串“優(yōu)秀永罚、良好啤呼、合格议薪、不及格”

聲明時的要點

?在類/接口上聲明的泛型,在本類或本接口中即代表某種類型媳友,可以作為非靜態(tài)屬性的類型斯议、非靜態(tài)方法的參數(shù)類型、非靜態(tài)方法的返回值類型

?在類/接口上聲明的泛型不能使用在靜態(tài)成員上

泛型類的構造器如下:public GenericClass(){}醇锚。

而如下是錯誤的:public GenericClass(){}

?泛型類在聲明時還可以指定泛型的上限


指定時的要點

?當類或接口被使用時哼御,會使用具體的實際類型參數(shù)(actual type argument)代替

?泛型的指定中不能使用基本數(shù)據(jù)類型,可以使用包裝類替換

?泛型如果不指定焊唬,將被擦除恋昼,泛型對應的類型均按照Object處理,但不等價于Object


例如:

(1)ArrayList list = newArrayList();?? 聲明集合變量或創(chuàng)建集合對象赶促,指定泛型

(2)class Dog implementsComparable{...}?? 實現(xiàn)接口時液肌,指定泛型

(3)public voidtest(ArrayList list){}?????使用泛型類或接口作為形參時,此處指定為學生類型

(4)public void test(ArrayListlist){}??????????? 使用泛型類或接口作為形參時鸥滨,此處指定為任意類型

(5)public void test(ArrayList? 使用泛型類或接口作為形參時嗦哆,此處指定為Person或其子類

(6)public void test(ArrayList????? 使用泛型類或接口作為形參時,此處指定為Son或其父類

關于泛型類/接口的繼承/實現(xiàn)說明

父類有泛型婿滓,子類可以選擇保留泛型也可以選擇指定泛型類型:

?子類不保留父類的泛型:按需實現(xiàn)

?沒有類型? 擦除

?具體類型

?子類保留父類的泛型:泛型子類

?全部保留

?部分保留

結論:子類必須是“富二代”老速,子類除了指定或保留父類的泛型,還可以增加自己的泛型


具體示例代碼


關于泛型的擦除說明

使用泛型類時未指定泛型的具體類型:類似于Object凸主,不等同于Object

?泛型擦除橘券,默認按照Object處理但編譯不會類型檢查

?明確指定Object,編譯會按Object類型檢查


泛型形式之二:泛型方法

?如果某個類不是泛型類卿吐,而某個方法需要使用泛型

?如果某個類是泛型類旁舰,但是需要在靜態(tài)方法上使用泛型

泛型方法的格式:

[訪問權限]? <泛型字母>? 返回類型? 方法名([泛型字母參數(shù)名稱])? 拋出的異常


示例:java.util.Arrays類

?public static List asList(T... a)

注意:Arrays.asList(…) 方法返回的 List 集合既不是ArrayList 實例,也不是 Vector 實例嗡官。 Arrays.asList(…)?返回值是一個固定長度的List 集合

?public static T[] copyOf(T[] original, int newLength)

?public static T[] copyOfRange(T[] original, int from,intto)


注意:

?泛型方法可以是靜態(tài)方法也可以是非靜態(tài)方法

?泛型方法聲明泛型時也可以指定上限


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末箭窜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谨湘,更是在濱河造成了極大的恐慌绽快,老刑警劉巖芥丧,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件紧阔,死亡現(xiàn)場離奇詭異,居然都是意外死亡续担,警方通過查閱死者的電腦和手機擅耽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來物遇,“玉大人乖仇,你說我怎么就攤上這事憾儒。” “怎么了乃沙?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵起趾,是天一觀的道長。 經(jīng)常有香客問我警儒,道長训裆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任蜀铲,我火速辦了婚禮边琉,結果婚禮上,老公的妹妹穿的比我還像新娘记劝。我一直安慰自己变姨,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布厌丑。 她就那樣靜靜地躺著定欧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怒竿。 梳的紋絲不亂的頭發(fā)上忧额,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音愧口,去河邊找鬼睦番。 笑死,一個胖子當著我的面吹牛耍属,可吹牛的內容都是我干的托嚣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼厚骗,長吁一口氣:“原來是場噩夢啊……” “哼示启!你這毒婦竟也來了?” 一聲冷哼從身側響起领舰,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤夫嗓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冲秽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舍咖,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年锉桑,在試婚紗的時候發(fā)現(xiàn)自己被綠了排霉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡民轴,死狀恐怖攻柠,靈堂內的尸體忽然破棺而出球订,到底是詐尸還是另有隱情,我是刑警寧澤瑰钮,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布冒滩,位于F島的核電站,受9級特大地震影響浪谴,放射性物質發(fā)生泄漏旦部。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一较店、第九天 我趴在偏房一處隱蔽的房頂上張望士八。 院中可真熱鬧,春花似錦梁呈、人聲如沸婚度。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝗茁。三九已至,卻和暖如春寻咒,著一層夾襖步出監(jiān)牢的瞬間哮翘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工毛秘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饭寺,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓叫挟,卻偏偏與公主長得像艰匙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抹恳,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容