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
相关推荐
2501_944521596 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理7 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
wangchunyu1148 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
paopaokaka_luck9 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir9 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人9 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
警醒与鞭策10 小时前
Codex桌面版与Claude桌面版使用设置
android·unity·ai·性能优化
2501_9445215910 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
meiying883810 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
@大迁世界11 小时前
告别 Go,拥抱 Rust
开发语言·golang·rust