泛型的使用

?泛型的運(yùn)用:

? 需求:

? ???????? 定義一個(gè)方法,可以接受任意數(shù)據(jù)類型,而且要求返回的數(shù)據(jù)類型,就是你傳入的數(shù)據(jù)類型

? 例如:

????? ???? 傳入String,返回String

? ???? ???? 傳入Demo3類型,返回Demo3類型

? 泛型:

? ???????? 占位符!??!<一個(gè)大寫字母>,只是一個(gè)占位符,沒有實(shí)際含義,而且不同地方定義的占位符沒有聯(lián)系

? 泛型在函數(shù)中使用的格式

? 修飾符 <聲明的自定義泛型占位符> 返回值類型(可以使用自定泛型) 函數(shù)名(形式參數(shù)列表"也可以使用泛型") {

? 函數(shù)體

? 在函數(shù)體中,所有用到自定義泛型的地方,都可以被替換

? }

? 包裝類

? Java是完全面向?qū)ο蟮恼Z(yǔ)言,在Java中萬(wàn)物皆對(duì)象,如果是要保存類對(duì)象,那么8大基本數(shù)據(jù)類型就無法使用所以,Java提供了一個(gè)包裝機(jī)制,包裝基本數(shù)據(jù)類型,讓他們變成類對(duì)象,

? 自動(dòng)封箱

? Integer -> int

? Byte -> byte

? Long -> long

? Short -> short

? Double -> double

? Float -> float

? Boolean -> boolean

? Character -> char


? 如果使用包裝類直接賦值給普通的基本數(shù)據(jù)類型,這個(gè)操作稱之為 拆箱

在類內(nèi)使用泛型

格式:

class 類名<自定義泛型的占位符> {

//在這里所用到的泛型和用戶創(chuàng)建對(duì)象時(shí)聲明的一致

}

注意事項(xiàng):

1. 一個(gè)類聲明的自定義泛型,如果在創(chuàng)建該類對(duì)象時(shí),確定了泛型的具體數(shù)據(jù)類型,那么

在整個(gè)類內(nèi)所有用到該泛型占位符的非靜態(tài)成員方法,使用的數(shù)據(jù)類型都是創(chuàng)建時(shí)確定的類型

2. 如果創(chuàng)建使用了自定義泛型類對(duì)象,但是沒有確定泛型的具體類型,那么編譯器會(huì)把這個(gè)

泛型認(rèn)為是Object類型

3. 類中聲明的自定義泛型,不能對(duì)類內(nèi)的靜態(tài)方法使用,如果想讓靜態(tài)方法使用泛型, 自?shī)首詷?/p>

自己聲明,自己使用,類似方法中使用泛型

4. 建議:如果在代碼中出現(xiàn)了多個(gè)使用不同泛型的地方,請(qǐng)使用不同的名字?T E

在接口中定義泛型

格式 :

interface 接口名<自定義泛型的占位符> {

//成員變量? 缺省屬性:public static final 定義時(shí)必須初始化

//成員方法? 缺省屬性:abstract

}

兩種【遵從】帶有自定義泛型的接口方式:

1. 更加自由,需要使用的泛型類型,在創(chuàng)建對(duì)象時(shí)確定,類似ArrayList

2. 適合原本這個(gè)類就沒有使用泛型的情況,例如:一個(gè)類遵從Comparable接口

事項(xiàng)compareTo方法,這里可以在【遵從】時(shí),確定Comparable需要的泛型

具體數(shù)據(jù)類型,減少?zèng)]有必要的強(qiáng)制類型轉(zhuǎn)換

?泛型的上下限

T 泛型的占位符

? 通配符

super: 調(diào)用父類方法的關(guān)鍵字

extends: 繼承的關(guān)鍵字

需求:定義一個(gè)函數(shù)接受任意類型數(shù)值的集合,但是這個(gè)數(shù)據(jù)必須是數(shù)值類型

數(shù)值類型:Number 已知子類:Integer Short Long Double Float (包裝類)

要求傳入的對(duì)象是Number類對(duì)象或者其子類對(duì)象

Integer extends Number;

Float extends Number;

Double extends Number;

? extends Number;

這就是泛型的上限:

需求:定義一個(gè)函數(shù)能夠傳入一個(gè)任意類型的集合,但是要求集合里面保存的數(shù)據(jù)必須是Number類對(duì)象,或者其父類對(duì)象

泛型的下限

能夠保存的數(shù)據(jù)是Number類對(duì)象本身或者其父類對(duì)象

?著作權(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)容

  • 泛型技術(shù)在C#和Java之中的使用方式看似相同,但實(shí)現(xiàn)上卻有著根本性的分歧,C#里面泛型無論在程序源碼中、編譯后的...
    zx_tree閱讀 163評(píng)論 0 0
  • 在使用Swift開發(fā)的過程中,我們可能經(jīng)常會(huì)碰到泛型。那么究竟什么是泛型?泛型作為Swift最為強(qiáng)大的特性之一,該...
    思緒_HY閱讀 622評(píng)論 0 1
  • 泛型的概念 泛型,本質(zhì)是參數(shù)化類型,這個(gè)概念在程序設(shè)計(jì)里面很經(jīng)??梢钥吹?,泛型的使用很靈活而且高效,它允許程序員將...
    MarcoHorse閱讀 273評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • 顧惜是一個(gè)鄉(xiāng)下的丫頭,長(zhǎng)相平凡,沒有特長(zhǎng),是那種扎在人堆里被淹沒的連背影都看不見的人。就像所有勵(lì)志小說中一...
    lo星空ve閱讀 140評(píng)論 0 0

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