将java类字段直接转换为字节数组

时间:2014-06-16 07:47:19

标签: java serialization bytearray

让我有一个简单的课程

public class A
{
    public int a;
    public int b;
    public byte c;
    public byte  d;
    public B e;
    public C f;
    public byte[] g = new byte[5];
}

有没有办法将它转换为字节数组,而无需手工操作?需要结果数组中的相同字段顺序,并且不允许字节数组中的其他信息,只允许字段值。

1 个答案:

答案 0 :(得分:0)

如果您想使用反射,则无法保证检索字段的顺序。

所以你可以使用两种方法:

  • 按字母顺序排列字段
  • 使用序列化
  • 中该字段的顺序为每个字段添加注释

请注意,对于数组序列化,您必须知道数组的长度或使用分隔符来表示数组的结尾。在您的示例的简单情况下,这不是必需的,因为您只有1个数组。如果您有多个变量长度变量(例如String或数组),则必须这样做。

如果需要在代码和外部代码之间共享这些数据,则必须确保序列化过程与外部程序的序列化过程相同。这意味着要知道例如int是否表示为BigEndian