中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

當前位置: 首頁 / 技術干貨 / 正文
民哥帶你快速精通java泛型(七)總結

2022-10-26

泛型 類型

  第七關 泛型的點點滴滴

  走到這里,小伙伴基本上把泛型學完了,是不是很有成就感啊,不要著急走開喔,后面還有些細節需要完善。下面我們一起把泛型的細節看一下

好程序員

  1.異常中使用泛型

  由于泛型在使用過程會消失, 消失后泛型具體的類型就會用戶Object類型來替代,Object 是沒有 繼承 Exception或者Throwable異常類的, 所以 在定義異常類時,不能使用泛型。

  又是因為泛型在使用過程會消失,如果使用泛型來表示異常類型,泛型消失,那么泛型表示的異常就不復存在,就會造成泛型無法捕獲或者處理這種情況。

  接下來,小伙們我們一起看如下代碼:

//1.自定義帶泛型的異常類: 不合法,錯誤的寫法。
class MyEx1<T> extends Exception{
public MyEx1(String message) {
super(message);
}
}
//2.定義泛型方法,拋出泛型T: 不合法
public class GenericDemo {
public <T> T doTest( T t){
try {
System.out.println("測試----");
}catch (T t){//錯誤的寫法
throw t;//錯發的寫法
}
return null;
}
}


//3.定義泛型接口(類也可以): 合法,正確的寫法,但不實用(沒有實際用途)。
class GenericTest<E extends Exception>{
void process() throws E;
}

  通過代碼演示,我們會發現在異常使用泛型存在諸多問題,我們來歸納總結下:

  1.自定義帶泛型的異常類,不合法

  由于代碼在運行時,泛型會被擦除,那么T 會被擦拭成Object類,而Object類顯然不會是Throwable的子類,因此它不符合異常的有關規定,所以java編譯器不編譯這種錯誤的寫法。

  2.定義泛型方法:拋出泛型T,不合法

  其實道理和自定義帶泛型的異常類的一樣,最后T 會被擦拭成Object類,顯然不是異常類,無法捕獲、亦無法拋出

  3.定義泛型接口(類也可以),正確的寫法

  因為我們定義了泛型的上限,即使運行時,T會被擦除,那么java編譯器依然會把它看成異常,所以不會報錯。

  但是這種寫法,還不如定義非泛型接口或者非泛型類,沒有多大實際用途,所以小伙伴知道就可以了。

  2.數組與泛型

  不能聲明參數化類型的數組, 數組可以記住自己的元素類型,不能用普通方法建立一個泛型數組。

  (當然 你如果用反射還是可以創建的,用Array.newInstance。因為在反射時,泛型就消失了)

  如下所示:

//定義泛型測試類:
class ArrDemo<T>{
public T[] arr1;//標準寫法,后期運行時不會引發問題
public ArrDemo<Integer>[] arr2;//不標準寫法,后期運行時可能會引發問題
public static void main(String[] args) {
//1.創建對象
ArrDemo<String> ad = new ArrDemo<String>();
//2.操作數組
String[] str_arr1 = ad.arr1;//在創建對象是T指的是String ,arr1就是String類型的數組。
ArrDemo<Integer>[] ad_arr3 = ad.arr2;//ad的泛型是String ,新定義的Integer可能會引發問題
}
}

  3.泛型方法

  在能夠使用泛型方法的時候,盡量避免使整個類泛化。

  如下所示:

public class GenericDemo4 {//1.標準: 推薦的寫法
//1.定義一個泛型方法:
public <E> E test2(E e){
System.out.println("自定義泛型的方法:"+e);
return e;
}
}

  4.泛型類型必須是應用類型,不能是基本類

  如下所示:

  Listlist2 = new ArrayList();//正確的寫法: 引用類型

  Listlist2 = new ArrayList();//錯誤的寫法: 基本類型

  5.虛擬機中沒有泛型,只有普通類和普通方法

  因為泛型在編譯階段我們能看到,可以規范我們開發者使用的類型。

  但是泛型在編譯后的class文件,以及最終到 JVM虛擬機中運行,這是泛型被擦除了,所以在虛擬機中只有普通類和普通方法。

  闖關練習

  請選擇下面描述正確的選項

  A: 泛型可以使用基本類型表示

  B: 泛型類中必須定義泛型方法

  C: 在異常操作中,通常不使用泛型

  D: 泛型類型必須是引用類型

  答案:C D

  第八關 課程總結

  這個小節的內容已經學習完了,小伙伴們是不是感覺收獲多多!

  剛才我們一起了解了泛型的基本信息和使用,同時完成了幾個闖關小練習,小伙伴現在對泛型的感覺如何呢。

  現在,我們一起做個總結吧。

  了解泛型是什么 泛型即: "參數化類型",可以把泛型作為"參數", 泛型可以指任意類型,規范java代碼的書寫

  了解泛型的優點 泛型可以進行編譯期間進行類型檢查 泛型可以避免類型強轉

  掌握泛型的定義和使用

  定義泛型接口

  定義泛型類

  定義泛型方法

  在實際開發的場景中能夠使用上面定義的泛型

  了解泛型的通配符,以及泛型的上限和下限

  泛型的上限,有時又稱之為上邊界,指的是泛型不能超過extends的類型

  泛型的下限,有時又稱之為下邊界,指的是泛型得高于super的類型

  了解泛型的擦除機制和補償措施

  泛型在編譯后的class文件中就消失了。

  泛型在使用時應盡量避免new T(),或者使用instanceof, 因為這兩類操作要知道確切的類型。

  泛型的補償措施:簡單工廠,工廠方法,模板類,需要小伙們好好學習一下。

  了解什么是鉆石操作符

  java7之后,規定< > 尖括號就是鉆石操作符,里面的泛型可以省略不寫,還是建議不要省略

  相信你已經掌握了大部分的泛型知識點了。對于還沒有理解的知識點。

  希望你有時間可以多看看,多敲敲代碼,多多練習。最后希望大家通過這一節泛型的學習,能夠對泛型有一個深入的理解,并且能夠在實際開發中熟練的運用!

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

            日韩欧美国产综合一区| 91蜜桃网址入口| 自拍偷拍欧美激情| 欧美视频一区二| 国产一区二区三区在线观看免费| 亚洲国产成人午夜在线一区| 欧美丝袜自拍制服另类| 久久9热精品视频| 一区二区三区精品在线观看| 日韩精品一区二区在线| 99久久99久久精品免费观看| 9i在线看片成人免费| 琪琪久久久久日韩精品| 亚洲人成亚洲人成在线观看图片| 91精品国产综合久久香蕉的特点| 丁香一区二区三区| 美女国产一区二区三区| 伊人一区二区三区| 久久青草欧美一区二区三区| 色八戒一区二区三区| 国产成人免费9x9x人网站视频| 亚洲成a人片综合在线| 中文在线免费一区三区高中清不卡| 欧美日韩免费一区二区三区| 成人小视频免费在线观看| 蜜桃精品视频在线观看| 亚洲国产精品久久人人爱| 国产精品卡一卡二| 风间由美一区二区三区在线观看 | 亚洲一区二区三区四区在线免费观看 | 丁香六月久久综合狠狠色| 国产精品国产三级国产普通话蜜臀 | 欧美日韩美少妇| 国产精品白丝av| 老色鬼精品视频在线观看播放| 日韩一区日韩二区| 久久狠狠亚洲综合| 午夜视黄欧洲亚洲| 一区二区三区四区蜜桃| 综合久久一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美一区二区在线播放| 欧美日韩国产成人在线91| 色欧美片视频在线观看在线视频| 成人高清av在线| 成人av网在线| 暴力调教一区二区三区| 成人黄色在线视频| 成人听书哪个软件好| 大胆欧美人体老妇| 成人黄色网址在线观看| 国产激情视频一区二区在线观看| 国内一区二区视频| 国产乱子伦一区二区三区国色天香| 美洲天堂一区二卡三卡四卡视频 | 国模套图日韩精品一区二区| 免费在线看成人av| 麻豆精品久久久| 精品在线一区二区三区| 国产一区二区免费视频| 国产成人亚洲综合a∨婷婷图片| 国产精品亚洲第一区在线暖暖韩国| 国产综合久久久久久鬼色 | 在线观看三级视频欧美| 欧美三片在线视频观看| 欧美日韩不卡在线| 欧美大片一区二区| 久久久777精品电影网影网| 久久一区二区三区四区| 国产免费观看久久| 亚洲免费色视频| 日韩中文字幕91| 国产在线精品一区二区不卡了| 国产不卡视频在线播放| 91年精品国产| 亚洲一级二级在线| 日本一道高清亚洲日美韩| 久久精品国产精品青草| 国产成人h网站| 日本韩国欧美在线| 日韩欧美一区二区久久婷婷| 国产人伦精品一区二区| 亚洲激情网站免费观看| 日本强好片久久久久久aaa| 国产自产高清不卡| 91美女在线视频| 日韩一区二区视频在线观看| 久久久久久久av麻豆果冻| 亚洲欧美另类在线| 美女视频免费一区| 成人av资源在线| 欧美日韩国产经典色站一区二区三区| 精品少妇一区二区三区视频免付费| 欧美韩国日本不卡| 亚洲va欧美va人人爽午夜| 精品亚洲aⅴ乱码一区二区三区| www.欧美色图| 日韩欧美中文一区| 亚洲精品久久7777| 国产一区二区三区免费观看| 日本福利一区二区| 久久久www成人免费无遮挡大片| 一区二区视频免费在线观看| 精品一二线国产| 欧美日韩成人在线一区| 中文一区二区在线观看| 秋霞电影网一区二区| 色综合天天综合网天天看片| 日韩美女天天操| 亚洲一区二区精品视频| 国产成人免费9x9x人网站视频| 欧美丰满一区二区免费视频| 国产精品国产自产拍高清av | 成人福利电影精品一区二区在线观看| 91麻豆精品国产综合久久久久久| 亚洲欧洲成人精品av97| 狠狠色丁香婷婷综合久久片| 欧美日韩激情在线| 成人av免费在线| 精品久久久影院| 琪琪久久久久日韩精品| 欧美色视频在线观看| 亚洲你懂的在线视频| 粉嫩av一区二区三区在线播放| 欧美成人一区二区三区| 丝袜美腿亚洲色图| 欧美日韩亚洲综合在线| 亚洲欧洲成人自拍| 99热这里都是精品| 国产精品久久久久久妇女6080| 激情小说亚洲一区| 欧美tk—视频vk| 美女爽到高潮91| 678五月天丁香亚洲综合网| 亚洲一区影音先锋| 在线观看日韩精品| 亚洲综合色婷婷| 欧美视频在线观看一区| 玉米视频成人免费看| 91亚洲国产成人精品一区二区三| 国产欧美日韩视频在线观看| 国产伦理精品不卡| 久久久久国产精品厨房| 国产精品资源在线观看| 26uuu亚洲| 国产成人av一区二区三区在线| 久久嫩草精品久久久久| 国产精品羞羞答答xxdd| 国产欧美一区二区精品忘忧草| 国产精品1区二区.| 国产精品久久久久久久第一福利| 成人网在线免费视频| 国产精品乱码一区二三区小蝌蚪| 成人动漫av在线| 亚洲乱码国产乱码精品精的特点| 色婷婷av一区| 日韩精品一级二级| 欧美一个色资源| 国产精品一区二区果冻传媒| 国产欧美一区二区精品忘忧草| 国产.欧美.日韩| 亚洲人成网站精品片在线观看| 色狠狠色噜噜噜综合网| 亚洲成av人影院在线观看网| 欧美一区二区精品在线| 国产一区二区三区在线观看免费视频| 国产色综合一区| 国产精品污www在线观看| av亚洲精华国产精华| 亚洲国产wwwccc36天堂| 日韩三级视频在线看| 国产一区二区h| 亚洲美女在线一区| 欧美一区二区观看视频| 国产在线视频不卡二| 国产精品久久福利| 欧美日韩电影一区| 激情图区综合网| 综合久久久久久| 91精品婷婷国产综合久久竹菊| 国产伦精品一区二区三区免费| 亚洲色图丝袜美腿| 欧美一区二区二区| 99久久久精品| 奇米色一区二区| 国产欧美视频一区二区| 欧美在线不卡一区| 国产一区 二区 三区一级| 亚洲少妇30p| 26uuu精品一区二区| 91免费精品国自产拍在线不卡| 欧美96一区二区免费视频| 国产精品久久久久久久久搜平片| 欧美老年两性高潮| 成人小视频在线| 裸体在线国模精品偷拍| 亚洲欧美一区二区在线观看| 91精品麻豆日日躁夜夜躁| 国产成人免费视频一区| 五月天婷婷综合|