t is Array<*>
верно для массивов объектов (Array<Whatever>
), но ложно для примитивных массивов (IntArray
и т. Д.).Таким образом, вы, вероятно, хотите
holder.keyValue.text = when(val t = cameraController.getCharacteristicInfo(myDataset[position])) {
is Array<*> -> Arrays.toString(t)
is IntArray -> Arrays.toString(t)
...
else -> t.toString()
}
(если t
используется снаружи, просто переместите назначение наружу).
Обратите внимание, что это разные Arrays.toString
перегрузки, поэтому вы не могли написать
is Array<*>, is IntArray, ... -> Arrays.toString(t)
, даже если в этой ситуации были доступны умные приведения (они не доступны).