问题描述
我只是这篇文章中的答案How to convert a Data Class to ByteBuffer in Kotlin?
它按预期工作。问题是几乎所有数据类型都可以放置,除了无符号一次。有用于字节缓冲区的 putLong 等函数,但没有用于 putULong 的函数。
任何提示都会受到赞赏。
亲切的问候,
C.W.
解决方法
ULong
和 Long
是一一对应的,所以你可以把 ULong
转换成 Long
,放入缓冲区,反之亦然阅读时。为方便起见,声明这些extension functions:
fun ByteBuffer.putULong(value: ULong): ByteBuffer = putLong(value.toLong())
fun ByteBuffer.getULong(): ULong = getLong().toULong()
它们可以像 get
/put*()
一样被调用。