gpt4 book ai didi

java - 将数字(short、int、long、float、double、bigint)转换为字节数组 : Scala/Java

转载 作者:行者123 更新时间:2023-11-30 08:35:14 24 4
gpt4 key购买 nike

我按照 scala 代码将 (short, int, long, float, double,bigint) 转换为字节数组。

def getByteArray(value: Any, of_type: String) = {
of_type match {
case "short" => ByteBuffer.allocate(2).putShort(value.asInstanceOf[Short]).array()
case "int" => ByteBuffer.allocate(4).putInt(value.asInstanceOf[Int]).array()
case "long" => ByteBuffer.allocate(8).putLong(value.asInstanceOf[Long]).array()
case "float" => ByteBuffer.allocate(4).putFloat(value.asInstanceOf[Float]).array()
case "double" => ByteBuffer.allocate(8).putDouble(value.asInstanceOf[Double]).array()
case "bigint" => BigInt(value.toString).toByteArray
}
}
  1. 这就够了吗?我是否需要在末尾调用任何清理方法,例如 clear()mark()reset() 以确保没有 ByteBuffer泄漏

  2. 当我使用 allocateDirect 方法时,它会抛出以下异常。那么,这是否意味着 allocateDirect 方法没有支持数组?

Exception in thread "main" java.lang.UnsupportedOperationException at java.nio.ByteBuffer.array(ByteBuffer.java:994)

最佳答案

  1. 是的,这就是所有需要的。无需对 nio 缓冲区进行清理。
  2. 确实,直接缓冲区没有后备数组。

关于java - 将数字(short、int、long、float、double、bigint)转换为字节数组 : Scala/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344752/

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