私は次のような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)
誰かがそれを行うためのより適切な方法を知っていますか?ありがとう。