在Kotlin中声明字节会产生编译时错误'整数字面值不符合预期的字节Byte'

时间:2017-06-17 12:17:35

标签: kotlin

0xFF0000FF An integer literal does not conform to the expected type kotlin.Int

中的另一个问题

我将值0xFF声明为Byte

val b:Byte = 0xFF

接收 整数文字不符合预期类型字节 编译错误

因为我知道kotlin.Byte 是有符号字节

如何使用0x00 - 0xFF无符号字节在Kotlin中声明字节,就像 Byte b = 0xFF一样?

如果您想要即时编译器进行测试并回答:

rextestertry.kotlinlang.org

1 个答案:

答案 0 :(得分:10)

Kotlin不会在数字类型之间自动转换。

如果你执行val b:Byte = 0xFF.toByte(),那么它会编译并生成一个值为-1的字节。

如果要保留无符号字节值,则需要将其存储为Char,但需要将其转换为其他类型以将其打印为数字:

val b = 0xFF.toChar()
println(b.toInt())