【发布时间】:2020-11-16 12:59:17
【问题描述】:
我有一个 Kotlin 对象,需要将其转换为字节数组 (byte[])。我了解如何将字符串和一系列其他类型的变量转换为byte[],但我找不到任何关于使用对象执行此操作的内容。
这是我尝试过的:
override fun activateQuestion(instructorUserName: String, host: String, port: Int, questionToActivate: MultipleChoiceQuestion) {
val socket = DatagramSocket()
//This is the problem -- `.toByteArray(...)` only works for Strings
val questionToActivateAsByteArray = questionToActivate.toByteArray(Charsets.UTF_8)
//send byte[] data
val packet = DatagramPacket(questionToActivateAsByteArray, questionToActivateAsByteArray.size, InetAddress.getByName(host), port)
socket.send(packet)
}
【问题讨论】:
-
在通过网络发送对象时,我通常选择使用 json。它允许您以任何语言解码它们。我会使用 Jackson
ObjectMapper并将您的对象转换为字符串,然后再将其作为字节发送。 -
您找到解决方案了吗?我也想知道。