gpt4 book ai didi

java - 如何将枚举转换为固定大小的 byte[]

转载 作者:行者123 更新时间:2023-11-29 04:21:59 24 4
gpt4 key购买 nike

假设我有一个枚举:

public enum MyEnum {
SUCCESS;
}

我还有一个表示为 byte[] 的字符串:

byte[] bytes = aString.getBytes(Charset.forName("UTF8"));

我需要一种机制,将 2 byte[] 组合成一个数组,枚举后跟字符串,并从另一端检索数据。我能想到的唯一方法是将枚举转换为已知的固定大小 byte[]。然后当我从给定的 byte[] 中提取数据时,我知道第一个 x 代表枚举,其余的代表字符串。然后我需要做的就是将 byte[] 的第一部分转换回枚举,并将其余部分转换为字符串:

new String(byte[],Charset)

有什么有用的实用程序可以帮助我吗?

澄清:该机制需要非常快,字符串的 byte[] 已经通过另一种机制提供。我需要为枚举创建一个 byte[],然后简单地将两者结合起来。在另一端,我需要将枚举的 byte[] 和字符串提取到单独的 byte[] 中。我需要将第一个 byte[] 转换为枚举,但表示字符串的第二个 byte[] 被传递到其他地方。因此我不想创建一个包含枚举和字符串的封装数据类,开销太大。

最佳答案

一些进一步的调查表明这是一个可能的答案:

byte[] data = ... from somewhere else
byte[] message = new byte[data.length + 1]
message[0] = Integer.valueOf(MyEnum.SUCCESS.ordinal()).byteValue();
System.arrayCopy(data, 0, message, 1, data.length);

关于java - 如何将枚举转换为固定大小的 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545582/

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