カスタムシリアル化メカニズムをプロトコルバッファに移行し始めています。特に定期的に使用される1つのデータ型はBigDecimalです。BigDecimal/BigIntegerをProtocolBuffersにシリアライズする最良の方法は何ですか
プロトコルバッファ内でこれをシリアル化する良い方法を知っている人はいますか?現在のシリアライゼーションルーチンでは、シリアライゼーションにはBigDecimal.toPlainString()が使用され、デシリアライズには新しいBigDecimal(String)が使用されています。
私の推測では、とのBigDecimalを定義することです:
message BDecimal {
required int32 scale = 1;
required BInteger int_val = 2;
}
しかし、私はBigIntegerのを定義する方法があまりにもわからない - おそらくそのtoByteArray()メソッドを使用していますか?
BigDecimalをBigIntegerとスケールに変換するにはどうすればよいですか?帰ってきた ? – stikkos
私は最初、 'toByteArray'を使うこのアプローチが移植性がないかもしれないと懸念していました(Java以外の言語から意味のないものを直列化することはできません - 最初はprotobufを使う主な理由の1つです)。しかし、['BigInteger.toByteArray'](http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html#toByteArray())の仕様は非常に具体的であり、他の言語(例:[.net BigInteger](http://msdn.microsoft.com/en-us/library/dd268207(v = vs.110).aspx)。エンディアンが存在するように見えるので注意が必要です異なる)。 – bacar