让我有一个简单的课程
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];
}
有没有办法将它转换为字节数组,而无需手工操作?需要结果数组中的相同字段顺序,并且不允许字节数组中的其他信息,只允许字段值。
答案 0 :(得分:0)
如果您想使用反射,则无法保证检索字段的顺序。
所以你可以使用两种方法:
请注意,对于数组序列化,您必须知道数组的长度或使用分隔符来表示数组的结尾。在您的示例的简单情况下,这不是必需的,因为您只有1个数组。如果您有多个变量长度变量(例如String或数组),则必须这样做。
如果需要在代码和外部代码之间共享这些数据,则必须确保序列化过程与外部程序的序列化过程相同。这意味着要知道例如int
是否表示为BigEndian
。