Kotlin - 泛型 < >

一、概念
用于限定实例持有的数据类型,在类/接口内部使用统一的数据类型,也保证了容器类写入的数据类型单一化,避免运行时的类型转换异常,传入其他数据类型在编译时期就会报错提示。
T 是一个占位符,实例化或传参的时候会被替换成具体的类型。<T>针对的是类,可以赋值为非泛型类或泛型类,Demo<T>针对的是类型,只能传入基础类型是Demo的泛型类。

Create<Animal>,Create叫做基础类型(原始类型),Animal叫做泛型类型(实参类型、参数类型)。方法的泛型可以单独定义,不一定要用包裹它的类/接口的。
 

//当类定义了泛型
class One<T> {
    fun method1(param : String){}    //普通方法,没必要出现
    fun method2(param : T){}    //使用类定义的泛型类型
    fun <R> method3(param : R){}    //使用自己单独定义的泛型类型
    fun method4(param : Demo<T>){}    //形参为泛型类的时候,使用类定义的泛型类型
    fun <V> method5(param : Demo<V>){}    //形参为泛型类的时候,使用自己定义的泛型类型
}
 
//当类未定义泛型
class Two{
    fun method1(param : String){}    //普通方法
    fun method2(param : T){}    //不存在这种东西,使用泛型见下一行
    fun <R> method3(param : R){}    //使用自己单独定义的泛型类型
    fun method4(param : Demo<T>){}    //不存在这种东西,使用泛型见下一行
    fun <V> method5(param : Demo<V>){}    //形参为泛型类的时候,使用自己定义的泛型类型
}
 
//使用
val list1 = listOf(1, 2, 3)    //编译器能自动推算出Int类型
val list2: List<Long> = listOf(1, 2, 3)
val list3 = listOf<Long>(1, 2, 3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值