Я также думаю, что вы должны переосмыслить свой дизайн, как уже сказал Дж. Б. Низет.
Вы можете сделать это, обобщив ваш массив в массив массивов, например:
val testArray = arrayOf(arrayOf(0), arrayOf(0), arrayOf(7, 5, 2))
, который гарантирует, что вы можете получить и установить элементы следующим образом:
testArray[2][1]
testArray[2][0] = 4
Пока вы просто хотите получить доступ к элементам описанным вами способом, сохраняя свой дизайн, вы можете создать (локальную) функцию расширения оператора get
на Serializable
, например:
operator fun Serializable.get(i: Int) = (this as? Array<*>)?.get(i) ?: this
val a = arrayOf(0, 0, arrayOf(7,5,2))
println(a[1][0]) // 0
println(a[2][1]) // 5