You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中Array<IntArray>与Java int[][]的效率及对应关系问询

Kotlin中Java int[][]的对应类型与相关问题解析

1. 核心对应关系

Java的int[][]在Kotlin中的直接对应类型就是Array<IntArray>,这是官方定义的互映射关系:

  • Kotlin的IntArray等价于Java的int[]
  • Kotlin的Array<T>等价于Java的T[](当T是IntArray时,自然对应int[][])

2. 开销与等价性说明

Array<IntArray>看起来比int[][]啰嗦,但二者在JVM运行时完全等价,没有额外开销:

  • IntArray本身就是对Javaint[]的轻量封装,没有多余的对象包装,内存布局和int[]完全一致
  • Array<IntArray>本质就是“存着int[]对象引用的数组”,和Javaint[][]的内存模型完全相同,不存在额外性能损耗

3. Kotlin中表示Java int[][]的正确方式

直接使用Array<IntArray>即可,比如初始化一个3x3的二维int数组:

// 等价于Java的int[][] = new int[3][3];
val twoDIntArray: Array<IntArray> = Array(3) { IntArray(3) }

如果需要和Java代码互操作,直接传递Array<IntArray>类型的变量即可,JVM会自动将其视为int[][],无需额外转换。

4. 互操作类找不到问题排查

若出现运行时找不到Java类的情况,可从以下几点排查:

  • 确认Java类的包名、类名拼写正确,Kotlin代码中已正确导入该类
  • 检查项目编译配置,确保Java源代码目录被纳入编译范围(比如Gradle/Maven配置中是否包含Java源码集)
  • 若Java类是内部类,需注意Kotlin中引用内部类的语法:OuterClass.InnerClass(和Java一致,但要确保导入正确)

内容的提问来源于stack exchange,提问作者SMMH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:30:51