java - Java中不同大小的枚举值序列化数组
问题描述
我有枚举MyEnum
值A
,,,B
。C
每个值的大小为 60 个字节(当我将值写入字节数组时)。
然后我有这些枚举值的长度为 3 的数组。但是,数组的大小取决于数组中的值:
import java.io.*;
enum MyEnum {
A, B, C
}
public class Main {
public static void main(String[] args) throws IOException {
System.out.println(sizeOf(MyEnum.A)); // 60
System.out.println(sizeOf(MyEnum.B)); // 60
System.out.println(sizeOf(MyEnum.C)); // 60
MyEnum[] values = { MyEnum.A, MyEnum.B, MyEnum.C };
MyEnum[] values2 = { MyEnum.B, MyEnum.B, MyEnum.C };
MyEnum[] values3 = { MyEnum.B, MyEnum.B, MyEnum.B };
System.out.println(sizeOf(values)); // 110
System.out.println(sizeOf(values2)); // 105
System.out.println(sizeOf(values3)); // 100
}
private static long sizeOf(Object object) throws IOException {
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
ObjectOutputStream oOut = new ObjectOutputStream(bOut);
oOut.writeObject(object);
oOut.close();
return bOut.toByteArray().length;
}
}
有没有办法将枚举值数组转换为大小始终相同的字节数组?我想 的大小和values
相同。values2
values3
解决方案
推荐阅读
- swift - 为什么在用于 OpenGL 纹理的 CGContext 上调用绘图函数时出现 BAD_ACCESS 错误?
- javascript - JavaScript 窗口卸载不工作 [Vanilla Javascript]
- android - 使用 WireMockRule 运行 Android UI 测试时出现 java.lang.NoClassDefFoundError
- javascript - 如何在更新表单时发送有限字段
- api - XSLT 1.0 将元素添加到多个匹配项
- oauth-2.0 - 带有 oauth2-google 的 PHPMailer 是否使用 get_oauth_token
- android - cardview的recycleview不起作用。我该如何解决?
- javascript - 如何获取用户输入的访问权限并在我的后端服务器上计算某些内容?
- c# - 使用图形客户端从房间邮箱中获取日历事件
- xamarin - 构建失败 VS 2019 - 找不到部分路径 .nib