Kotlin 面向对象 - 装箱与拆箱

装箱与拆箱

  • 在 Kotlin 中,装箱与拆箱涉及基本类型与它们的可空引用类型或泛型集合中的类型转换
  1. 基本类型在大多数情况下直接对应 JVM 的原始类型,不涉及装箱

  2. 当它们被用作可空类型或放入泛型集合时,会自动装箱为对应的包装类

kotlin 复制代码
// 基本类型,不装箱
val a: Int = 100

// 可空类型,装箱
val b: Int? = 100

// 泛型集合,装箱
val list: List<Int> = listOf(100)

// 基本类型数组,不装箱
val array: IntArray = IntArray(1_000_000) { it }
  • Kotlin 会自动处理装箱和拆箱
kotlin 复制代码
// 自动装箱

val num: Int = 42
val boxedNum: Int? = num
kotlin 复制代码
// 自动拆箱

val boxedNum: Int? = 42
val num: Int = boxedNum ?: 0
相关推荐
panxianren3 小时前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
“AI国潮设计-小江”5 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
程序喵大人5 小时前
【C++入门】编译链接模型 - 01 一个 C++ 程序是怎样变成可执行文件的
开发语言·c++·编译链接模型
sunshine22 girl5 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
省钱兄--zs6 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang6 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
sunshine22 girl7 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat7 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
熊猫钓鱼>_>7 小时前
Kotlin Multiplatform for OpenHarmony 实战:为 KMPNotifier 实现 OpenHarmony 本地通知引擎
kotlin·ai编程·harmonyos·鸿蒙·openharmony·适配·kmp
菜鸟~noob2337 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战