当前位置: 首页 > news >正文

Kotlin泛型: 协变|逆变|不变

引言

无论java 通配符上限还是下限,都多少存在缺陷,要么存不安全,要么取不安全。而kotlin就解决这个问题。让out 纯输出, 让in纯输入。

java这块知识: java泛型的协变、逆变和不变-CSDN博客

协变

生产者out T  协变    【out T 此泛型能够被获取 读取 所以是out】

例子:

class   Producer<out T>{

// out T 代表整个生产者类里面 这个 T 只能被读取 ,不能修改 。

// 不能被修改(编译不通过)

fun consumer (item : T){} //  这里报错。

// 只能被读取

fun producer() : T {}

}

逆变

消费者 in T 逆变 【in T 此泛型只能被修改 更新所以是 in】

例子:

class  Consumer <in T>{

        //只能被修改

        fun comsumer(item : T){} // 消费代码

        //不能被读取

        fun producer() : T{} //编译不通过        

}

不变

// 生产者和消费者 T。默认情况下是 不变

能读取 能修改 。

相关文章:

  • mysql慢查询日志
  • Python - 爬虫-网页抓取数据-工具wget
  • ngx_http_core_root
  • Vue 中 v-if 和 v-show 的区别
  • 如何设计有效的用户反馈闭环机制
  • 微信小程序面试内容整理-如何优化小程序的启动速度?
  • 人工智能通识速览
  • 基于Spring Boot的消防物资存储系统的设计与实现(LW+源码+讲解)
  • deepseek实战教程-第五篇支持deepseek的大模型应用安装及使用
  • 基于 SGLang 部署 Qwen2.5 7B 模型
  • 正点原子内存管理学习和修改
  • Linux深度解析运行级别管理
  • 自动插入分号机制
  • ElementUI el-menu导航开启vue-router模式
  • C语言 - 整数与浮点数运算的类型转换规则
  • 定时器(java)
  • Linux安装MySQL数据库并使用C语言进行数据库开发
  • 【从零实现Json-Rpc框架】- 项目设计篇
  • C语言指针(二)
  • 有哪一些解放生产力的AI工具【前端】
  • 泉州网站/关键词搜索排名软件
  • wordpress users/深圳外包seo
  • 泰安市网站建设/灰色词排名上首页
  • 网站2019建设目标/最近营销热点
  • 网上找客户渠道/2022年百度seo
  • 做有网被视频网站/怎样优化关键词到首页