Kotlin實(shí)戰(zhàn)學(xué)習(xí)筆記(九 泛型)

  1. 泛型類型參數(shù)
  • 類型參數(shù)要么被顯示的聲明出來,要么可以推導(dǎo)(和Java不同)
  • 函數(shù)聲明
    fun <T> List<T>.slice(indices: IntRange): List<T>
  • 擴(kuò)展屬性
val <T> List<T>.penultimate: T 
    get() = this.[size - 2]
  • 聲明泛型類
class StringList: List<String> { //確定了類型都是String
   override fun get(i: Int) : String {...}
}
class ArrayList<T>: List<T>{
    override fun get(i: Int) : T {...}
}
  • 上界約束
<T extend Type>  //java
<T: Type> // kotlin
//kotlin特有的多個(gè)上界約束
fun <T>  foo(p: T) where T: Type1,T: Type2{ ... } //T必須是Type1和Type2的子類或?qū)崿F(xiàn)類
<T>  == <Any?> //所以類型可為null
<T:Any> // 這樣就不能為null了
  1. 運(yùn)行時(shí)類型擦除
  • 和Java一樣List<T> 會被擦除為List
value is List<String>  // error,現(xiàn)在的value是List
value is List<*> // pass
  • 用inline函數(shù)實(shí)現(xiàn)對泛型的檢查
inline fun <reified T> isA (value: Any) = value is T
// Kotlin 自帶函數(shù)
list.filterIsInstance<T>() // 過慮為T類型的數(shù)據(jù)
  • 帶reified的inline函數(shù)不能在Java中調(diào)用
  1. 變型
    見P250
    kt: <out T> ~= java :<? extends T> //只做生成類型,kotlin叫協(xié)變
    kt: <in T> ~= java :<? super T> //只做消費(fèi)類型,kotlin叫逆變
  • 點(diǎn)變 P254
    書上大概說的是: <out T>可讀不可變可作為方法的返回值<in T>可變不讀可作為方法是參數(shù)
  • <*> == <?>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市玻淑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖梳侨,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異日丹,居然都是意外死亡走哺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門哲虾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丙躏,“玉大人,你說我怎么就攤上這事束凑∩孤茫” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵汪诉,是天一觀的道長废恋。 經(jīng)常有香客問我,道長扒寄,這世上最難降的妖魔是什么鱼鼓? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮该编,結(jié)果婚禮上迄本,老公的妹妹穿的比我還像新娘。我一直安慰自己上渴,他們只是感情好岸梨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布喜颁。 她就那樣靜靜地躺著,像睡著了一般曹阔。 火紅的嫁衣襯著肌膚如雪半开。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天赃份,我揣著相機(jī)與錄音寂拆,去河邊找鬼。 笑死抓韩,一個(gè)胖子當(dāng)著我的面吹牛纠永,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谒拴,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尝江,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了英上?” 一聲冷哼從身側(cè)響起炭序,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苍日,沒想到半個(gè)月后惭聂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡相恃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年辜纲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦耐。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耕腾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出揩魂,到底是詐尸還是另有隱情幽邓,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布火脉,位于F島的核電站,受9級特大地震影響柒啤,放射性物質(zhì)發(fā)生泄漏倦挂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一担巩、第九天 我趴在偏房一處隱蔽的房頂上張望方援。 院中可真熱鬧,春花似錦涛癌、人聲如沸犯戏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽先匪。三九已至种吸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呀非,已是汗流浹背坚俗。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岸裙,地道東北人猖败。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像降允,于是被迫代替她去往敵國和親恩闻。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 人生苦多剧董,快來 Kotlin 判呕,快速學(xué)習(xí)Kotlin! 什么是Kotlin送滞? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,209評論 9 118
  • Kotlin 知識梳理系列文章 Kotlin 知識梳理(1) - Kotlin 基礎(chǔ)Kotlin 知識梳理(2) ...
    澤毛閱讀 2,510評論 0 4
  • 不重要的廢話 前段時(shí)間看了一遍《Programming Kotlin》侠草,主要目的是想提高自己的英文閱讀能力,能力提...
    珞澤珈群閱讀 3,362評論 1 7
  • 第8章 泛型 通常情況的類和函數(shù)犁嗅,我們只需要使用具體的類型即可:要么是基本類型边涕,要么是自定義的類。但是在集合類的場...
    光劍書架上的書閱讀 2,150評論 6 10
  • 01 萬里云山褂微,長風(fēng)冷月功蜓。風(fēng)景為千年而生,他為眾生驚世宠蚂。 曾經(jīng)那個(gè)世間最美的情郎式撼,雪域的王,被光陰的苔蘚覆蓋求厕,有一...
    無他書單閱讀 168評論 2 4