gpt4 book ai didi

android - 如何检查变量是否是 Kotlin 中的数组

转载 作者:行者123 更新时间:2023-11-29 18:34:37 25 4
gpt4 key购买 nike

我的 Kotlin 代码是

val t = cameraController.getCharacteristicInfo(myDataset[position])
if (t is Array<*>) {
holder.keyValue.text = Arrays.toString(t)
} else {
holder.keyValue.text = t.toString()
}

工作。 if (t is Array<*>)总是返回 false .

函数代码getCharacteristicInfo是:

public <T> T getCharacteristicInfo(CameraCharacteristics.Key<T> key) {
return characteristics.get(key);
}

获取相机特性的函数。

如何正确判断变量是否为数组?

最佳答案

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)

即使智能转换在这种情况下可用(它们不可用)。

关于android - 如何检查变量是否是 Kotlin 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54783150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com