最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之泛型在使用過(guò)程全解析

 更新時(shí)間:2025年09月05日 16:37:21   作者:ByteBlossom  
這篇文章介紹了泛型的基本概念及其在Java中的應(yīng)用,泛型通過(guò)統(tǒng)一類型參數(shù)消除了強(qiáng)轉(zhuǎn)問(wèn)題,廣泛應(yīng)用于集合類(如List、Set、Map)中,確保元素類型一致,文章還詳細(xì)解釋了泛型類、泛型方法、子類繼承、類型限制(上限和下限)、泛型擦除以及橋接方法等關(guān)鍵概念

什么是泛型?

早期Java是使用Object來(lái)代表任意類型的,但是向下轉(zhuǎn)型有強(qiáng)轉(zhuǎn)的問(wèn)題,這樣程序并不安全。針對(duì)List、Set、Map等集合類型,它們對(duì)存儲(chǔ)的元素類型是沒(méi)有任何限制的。

假如向List中存儲(chǔ)Dog類型的對(duì)象,但是有人把Cat對(duì)象也存儲(chǔ)到這個(gè)List中了,那么在編譯上是沒(méi)有任何語(yǔ)法錯(cuò)誤的。所有使用該泛型參數(shù)的地方都被統(tǒng)一化,保證類型一致。

如果未指定具體類型,默認(rèn)是Object類型。集合體系中的所有類都增加了泛型,泛型也主要用在集合。

下面我們就針對(duì)泛型類、泛型方法、泛型類派生出的子類、類型通配符、泛型擦除、橋接方法等內(nèi)容進(jìn)行一一介紹。

泛型類

泛型類就是把泛型定義在類上,用戶使用該類的時(shí)候,才把類型明確下來(lái)。

這樣的話,用戶明確了什么類型,該類就代表著什么類型,用戶在使用的時(shí)候就不用擔(dān)心強(qiáng)轉(zhuǎn)的問(wèn)題,和運(yùn)行時(shí)轉(zhuǎn)換異常的問(wèn)題了,如下所示:

泛型方法

除了在類上使用泛型,我們可能僅僅在某個(gè)方法上需要使用泛型,外界僅僅是關(guān)心該方法,不關(guān)心類其他的屬性,這樣的話,我們?cè)谡麄€(gè)類上定義泛型,未免就有些大題小作了。那么此時(shí),我們可以采用泛型方法。

泛型類派生出的子類

前面我們已經(jīng)定義了泛型類,泛型類是擁有泛型這個(gè)特性的類,它本質(zhì)上還是一個(gè)Java類,那么它就可以被繼承或?qū)崿F(xiàn)。這里分兩種情況:

  • ①子類明確泛型類的類型參數(shù)變量

  • ②子類不明確泛型類的類型參數(shù)變量

我們創(chuàng)建一個(gè)Inter接口,在該接口上使用泛型,代碼如下所示:

類型通配符

List<?>表示元素類型未知的List,它可以匹配任何類型的元素。

聲明List<?>后,不能向集合中添加元素,因?yàn)闊o(wú)法確定集合的元素類型,唯一例外的是null。

泛型的上限和下限

泛型的上限:

格式:類型名稱<?extends 類>對(duì)象名稱

意義: 只能接收該類型及其子類

泛型的下限:

格式:類型名稱<?super類>對(duì)象名稱

意義:只能接收該類型及其父類型

類型擦除

泛型是提供給javac編譯器使用的,它可以作為類型的限制,讓編譯器在源代碼級(jí)別上,擋住非法類型的數(shù)據(jù)。

但是在JDK1.5之前沒(méi)有泛型的概念,為了能夠與之前版本代碼兼容,編譯器編譯完帶有泛型的java程序后,生成的class字節(jié)碼文件中將不再帶有泛型信息,這個(gè)過(guò)程稱為“擦除”。

橋接方法的作用是什么?

橋接方法是jdk1.5引入泛型后,為使java泛型方法生成的字節(jié)碼與jdk1.5版本之前的字節(jié)碼兼容由編譯器自動(dòng)生成的。可用 method.isBridge() 判斷method是否是橋接方法。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java并發(fā)編程中的synchronized關(guān)鍵字詳細(xì)解讀

    Java并發(fā)編程中的synchronized關(guān)鍵字詳細(xì)解讀

    這篇文章主要介紹了Java并發(fā)編程中的synchronized關(guān)鍵字詳細(xì)解讀,在Java早期版本中,synchronized 屬于 重量級(jí)鎖,效率低下,這是因?yàn)楸O(jiān)視器鎖(monitor)是依賴于底層的操作系統(tǒng)的Mutex Lock來(lái)實(shí)現(xiàn)的,Java 的線程是映射到操作系統(tǒng)的原生線程之上的,需要的朋友可以參考下
    2023-12-12
  • BootStrap Jstree 樹(shù)形菜單的增刪改查的實(shí)現(xiàn)源碼

    BootStrap Jstree 樹(shù)形菜單的增刪改查的實(shí)現(xiàn)源碼

    這篇文章主要介紹了BootStrap Jstree 樹(shù)形菜單的增刪改查的實(shí)現(xiàn)源碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • SpringBoot攔截器以及源碼詳析

    SpringBoot攔截器以及源碼詳析

    攔截器在我們平時(shí)的項(xiàng)目中用處有很多,如:日志記錄(我們后續(xù)章節(jié)會(huì)講到)、用戶登錄狀態(tài)攔截、安全攔截等等,所以下面這篇文章主要給大家介紹了關(guān)于SpringBoot攔截器以及源碼的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • mybatisPlus實(shí)現(xiàn)倒序拼接字符串

    mybatisPlus實(shí)現(xiàn)倒序拼接字符串

    這篇文章主要介紹了mybatisPlus實(shí)現(xiàn)倒序拼接字符串方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java8不可或缺小幫手之日期應(yīng)用

    Java8不可或缺小幫手之日期應(yīng)用

    jdk1.8后引入了新的日期時(shí)間處理API,相比傳統(tǒng)的date操作更加簡(jiǎn)便,date中的SimpleDateFormat也是非線程安全的,廢話不多說(shuō),開(kāi)干
    2023-05-05
  • Java后端返回PDF預(yù)覽給前端的實(shí)現(xiàn)

    Java后端返回PDF預(yù)覽給前端的實(shí)現(xiàn)

    前端要預(yù)覽服務(wù)器PDF 可直接將要blob流返回給前端,即可用瀏覽器自帶pdf預(yù)覽功能打開(kāi),本文就來(lái)介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • MyBatis中的連接池及事物控制配置過(guò)程

    MyBatis中的連接池及事物控制配置過(guò)程

    連接池就是用于存儲(chǔ)數(shù)據(jù)庫(kù)連接的一個(gè)容器,容器其實(shí)就是一個(gè)集合對(duì)象,本文給大家介紹MyBatis中的連接池以及事物控制的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-05-05
  • 關(guān)于idea中SpringBoot啟動(dòng)失敗的坑

    關(guān)于idea中SpringBoot啟動(dòng)失敗的坑

    這篇文章主要介紹了關(guān)于idea中SpringBoot啟動(dòng)失敗的坑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 利用微信小程序+JAVA實(shí)現(xiàn)微信支付的全過(guò)程

    利用微信小程序+JAVA實(shí)現(xiàn)微信支付的全過(guò)程

    微信支付是一種在線支付解決方案,允許用戶通過(guò)微信內(nèi)的支付功能進(jìn)行付款,下面這篇文章主要給大家介紹了關(guān)于利用微信小程序+JAVA實(shí)現(xiàn)微信支付的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 配置化Feign接口動(dòng)態(tài)切換URL方式

    配置化Feign接口動(dòng)態(tài)切換URL方式

    本文介紹了在開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境中使用Feign接口時(shí),根據(jù)不同的環(huán)境動(dòng)態(tài)切換調(diào)用URL的方法,通過(guò)在不同環(huán)境的配置文件中配置URL,并實(shí)現(xiàn)一個(gè)Feign攔截器來(lái)讀取這些配置,從而實(shí)現(xiàn)URL的動(dòng)態(tài)切換,這種方法避免了引入過(guò)多步驟,同時(shí)也保證了不同環(huán)境下的URL正確調(diào)用
    2024-11-11

最新評(píng)論

临湘市| 南充市| 抚宁县| 珲春市| 普定县| 阳朔县| 云南省| 恩施市| 玉溪市| 长宁县| 舟山市| 邮箱| 教育| 宁明县| 余庆县| 孙吴县| 崇信县| 阿鲁科尔沁旗| 台山市| 平武县| 湾仔区| 江达县| 宁波市| 临夏县| 曲水县| 突泉县| 宁乡县| 丹东市| 湘潭市| 轮台县| 客服| 阳春市| 汤阴县| 溧水县| 当阳市| 三河市| 延津县| 英德市| 朝阳区| 乌拉特前旗| 巩义市|