我在科特林发现了一个奇怪的问题。

我可以为Int变量分配一个十六进制整数,如下所示:

private val a = 0xFFFF0000    //works good


但我不能在intArrayOf中使用此十六进制整数:

private val array: IntArray = intArrayOf(0xFFFF0000)


IDE提示:整数文字不符合预期的Int类型。
java - 为什么不能在kotlin方法intArrayOf中使用十六进制Int?-LMLPHP

有人知道为什么吗?还有在0xFFFF0000中使用intArrayof吗?

最佳答案

因为0xFFFF0000是Long类型,

您可以使用private val array: IntArray = intArrayOf(0xFFFF0000.toInt())

将类型从Long更改为Int

或声明LongArray类型

private val array: LongArray = longArrayOf(0xFFFF0000)

关于java - 为什么不能在kotlin方法intArrayOf中使用十六进制Int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58811970/

10-09 09:22