Kotlin泛型(七)

本文详细探讨了Kotlin编程语言中的泛型概念,包括其基本用法、类型约束、通配符以及如何在Android开发中有效利用泛型提高代码复用性和安全性。通过实例解析,帮助读者深入掌握Kotlin泛型的运用。
摘要由CSDN通过智能技术生成
/**
 * 可以用inline关键字修饰函数,同时用reified关键字修饰泛型类型,这样就可以保留泛型参数的具体类型
 */
class Box<T>(t: T) {
    var value = t
}

/**
 * Kotlin 泛型函数的声明与 Java 相同,类型参数要放在函数名的前面
 */
fun <T> doPrintln(content: T) {
    when (content) {
        is Int -> println("整型数字为${content}")
        is String -> println("字符串转换为大写:${content.toUpperCase()}")
        else -> println("T 不是整型,也不是字符串")
    }
}

/**
 * 型变
 * Kotlin 中没有通配符类型,它有两个其他的东西:声明处型变(declaration-site variance)与类型投影(type projections)
 * 声明处型变:
 *      声明处的类型变异使用协变注解修饰符:in、out,消费者 in, 生产者 out
 *      使用 out 使得一个类型参数协变,协变类型参数只能用作输出,可以作为返回值类型但是无法作为入参的类型
 *      in 使得一个类型参数逆变,逆变类型参数只能用作输入,可以作为入参的类型但是无法作为返回值的类型
 */


//支持协变
class Runoob<out A>(val a: A) {
    fun foo(): A {
        return a
    }
}
//支持逆变
class RunB<in A>(a:A){
    fun foo1(a:A){
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值