androidでmessagepackを使用すると、クラスをシリアル化/逆シリアル化できますが、完全に正しいわけではありません。
簡単なテストクラス:
@Message
public class Account {
public String Code;
public int Sequence;
public float Lot;
public String toString(){
return "Seq:"+Sequence;
}
}
テストコード:</ p>
MessagePack msgpack = new MessagePack();
msgpack.register(Account.class);
try {
Account a = new Account();
a.Code ="name";
a.Sequence = 105;
a.Lot = (float)1.05;
byte[] b = msgpack.write(a);
//byte[] c = MessagePack.pack(a);
Account aa = msgpack.read(b, Account.class );
System.out.println(new String(b));
System.out.println("test00: aa.Lot "+aa.Lot);
}catch(IOException e){
e.printStackTrace();
}
実行後"byte[] b = msgpack.write(a);" androidでは、出力バイト配列b []が正しくありません(javaと比較してください)
[-109, -92, 110, 97, 109, 101, 105, -54, 63, -122, 102, 102] on java
[-109, -92, 110, 97, 109, 101, -54, 63, -122, 102, 102, 105] on android
AndroidでMessagePackを使用するレビューがあります