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

如何用Kotlin声明并初始化Pair数组?Java转Kotlin实现疑问

在Kotlin中正确初始化Pair数组用于Activity转场动画

你当前的代码之所以出问题,是因为arrayOf(1)创建的是**Array<Int>类型的数组**,而我们需要的是存储Pair<View, String>的数组,类型完全不兼容,自然无法把Pair对象赋值进去。

这里给你两种正确的实现方式:

方式一:先创建指定大小的空数组,再赋值

如果你习惯先声明数组再填充元素,可以用arrayOfNulls创建一个指定大小、元素初始为null的数组,之后再给元素赋值:

val prof_intent = Intent(this, NewObjectiveActivity::class.java)
val pairs = arrayOfNulls<Pair<View, String>>(1) // 创建长度为1的Pair数组,元素初始为null
pairs[0] = Pair(fabNewObjective, "activity_trans")
val options = ActivityOptions.makeSceneTransitionAnimation(this, pairs)
startActivity(prof_intent, options.toBundle())

方式二:直接创建并初始化数组(更推荐)

Kotlin推崇简洁的写法,你可以直接在创建数组时就传入Pair元素,一步到位:

val prof_intent = Intent(this, NewObjectiveActivity::class.java)
val pairs = arrayOf(Pair(fabNewObjective, "activity_trans")) // 直接创建包含目标Pair的数组
val options = ActivityOptions.makeSceneTransitionAnimation(this, pairs)
startActivity(prof_intent, options.toBundle())

这两种方式都能完美替代Java里Pair[] pairs = new Pair[1];的写法,并且符合Kotlin的语法规范。

内容的提问来源于stack exchange,提问作者André Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:00:51