için serileştirmek için en iyi yaklaşım nedir? Özel bir seri hale getirme mekanizmasını Protokol Tamponlarına geçirmeye başlıyorum. Özellikle düzenli olarak kullanılacak bir veri türü BigDecimal'dir.BigDecimal/BigInteger'i ProtokolBuffers
Bunu Protokol Tamponları içinde iyi bir şekilde serileştirmenin iyi bir yolu var mı? Geçerli serileştirme rutinimiz serileştirme için BigDecimal.toPlainString() ve seri hale getirme için yeni BigDecimal (String) kullanır - daha iyi bir yol olduğunu varsayardım.
Benim tahminim gibi bir BigDecimal tanımlamaktır:
message BDecimal {
required int32 scale = 1;
required BInteger int_val = 2;
}
Ama BigInteger nasıl tanımlanacağı çok emin değilim - belki de toByteArray() yöntemini kullanarak?
BigDecimal'i BigInteger ve ölçeğe nasıl dönüştürürsünüz? Ve geri mi? – stikkos
İlk olarak, "toByteArray" işlevinin bu yaklaşımının taşınabilir olmadığı (Java dışındaki dillerden anlamlı şekilde serpiştirilemediği - genellikle de protobufun ilk etapta kullanılmasının temel nedenlerinden biri) olacağı konusunda endişeliydim. Ancak, ['BigInteger.toByteArray'] (http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html#toByteArray()) için belirtim oldukça spesifik ve kolayca kullanılabilir diğer diller (örneğin, [.net BigInteger] (http://msdn.microsoft.com/en-us/library/dd268207 (v = vs.110) .aspx), çünkü endianness gibi dikkatli olmalısınız. farklı). – bacar