我想尝试滥用 Java 类作为结构,为此我想知道是否可以将字节数组序列化为类以及其他方式。
所以如果我有这样的类(class):
public class Handshake
{
byte command;
byte error;
short size;
int major;
int ts;
char[] secret; // aligned size = 32 bytes
}
是否有一种简单的方法(无需手动读取字节并填写需要 3 倍代码量的类)将一组字节反序列化到此类中?我知道 Java 没有结构,但我想知道是否可以简化序列化过程,以便它自动执行。 这些字节不是来自 Java 的序列化程序,它们只是从 C 结构派生的对齐字节。
最佳答案
The bytes are not from Java's serializer, they are just aligned bytes derived from C structs.
坏主意。一旦有人在不同的平台上使用不同的编译器或设置等编译该代码,它就可能会崩溃。
更好:使用带有 Java 和 C++ 实现的标准化二进制接口(interface),如 ASN.1 或 Google 的 Protocol Buffers .
关于java - Java 中基于字节的(反)序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899943/