美文网首页
google kotlin 训练营-泛型

google kotlin 训练营-泛型

作者: wwq2020 | 来源:发表于2020-07-22 15:36 被阅读0次

原文

class MyList<T> {
fun get(pos: Int): T {
TODO("implement")
}
fun addItem(item: T) {}
}

默认 T 可为 null
相当于

class MyList<T:Any?> {
fun get(pos: Int): T {
TODO("implement")
}
fun addItem(item: T) {}
}

如果想不为null,则

class MyList<T:Any> {
fun get(pos: Int): T {
TODO("implement")
}
fun addItem(item: T) {}
}

check
如果waterSupply.needsProcessing为true,则抛出异常

class Aquarium<T: WaterSupply>(val waterSupply: T) {
fun addWater() {
check(!waterSupply.needsProcessing) { "water supply needs processing first" }
println("adding water from \$waterSupply")
}  
}

泛型函数

fun <T: WaterSupply> isWaterClean(aquarium: Aquarium<T>) {
   println("aquarium water is clean: ${!aquarium.waterSupply.needsProcessing}")
}

泛型方法

inline fun <reified R: WaterSupply> hasWaterSupplyOfType() = waterSupply is R

扩展函数

inline fun <reified R: WaterSupply> Aquarium<*>.hasWaterSupplyOfType() = waterSupply is R

inline fun <reified R: WaterSupply> Aquarium<*>.hasWaterSupplyOfType() = waterSupply is R

相关文章

  • google kotlin 训练营-泛型

    原文 默认 T 可为 null相当于 如果想不为null,则 check如果waterSupply.needsPr...

  • 第一天

    概述: Kotlin基础面向过程面向对象接口、扩展、泛型 为什么学习Kotlin 1.Google官方指定2.简介...

  • 泛型

    与Java泛型相同,Kotlin同样提供了泛型支持。对于简单的泛型类、泛型函数的定义,Kotlin 与 Java ...

  • Kotlin---泛型

    Kotlin不变型泛型 Kotlin的不变型泛型和Java一样,通过声明泛型类型来使用泛型类。而该种泛型声明后,则...

  • Kotlin 泛型 VS Java 泛型

    建议先阅读我的上一篇文章 -- Java 泛型 和 Java 泛型一样,Kotlin 泛型也是 Kotlin 语言...

  • Kotlin for android学习六:泛型

    前言 kotlin官网和kotlin教程学习教程的笔记。 1. 声明泛型 2. 泛型约束 : 对泛型的类型上限进行...

  • 泛型

    Kotlin 泛型详解 声明一个泛型类 声明一个泛型方法 泛型约束 List 和 List 是...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • Kotlin:泛型杂谈(下)

    在Kotlin:泛型杂谈(上)中,从泛型扩展属性、非空约束、实例化类型参数三个方面简单介绍了一下Kotlin中泛型...

  • 【Android】 Kotlin(七)泛型

    深入理解Kotlin泛型 Kotlin 的泛型与 Java 一样,都是一种语法糖,即只在源代码中有泛型定义,到了c...

网友评论

      本文标题:google kotlin 训练营-泛型

      本文链接:https://www.haomeiwen.com/subject/yvqtlktx.html