我有一个 Java 类,例如:
class Foo implements IBar
{
// Methods ..
// A bunch of fields of primitive types (int, String)
int f1;
int f2;
String f3;
// ...
}
我想将所有这些字段打包到字节数组中(不要问我为什么,这个限制是由以这种格式向我发送数据的 C++ 端引入的)。
我发现的唯一方法是使用ByteBuffer
. 但这是我能想到的最糟糕的情况。代码如下所示:
ByteBuffer buf = ByteBuffer.allocate(4);
int offset = 0;
buf.putInt(f1);
System.arraycopy(buf.array(), 0, rawHeader, offset, 4);
offset += 4;
// A bunch of lines here (pack all other fields)
有谁知道更合适的方法吗?谢谢。