1

今のところ、私が探しているのは単純なシリアライゼーション/デシリアライゼーションだけです。トランスポート層やその他のネットワーク スタック要素を探しているわけではありません。

Thrift および Protocol Buffers では、単純なシリアライズ/デシリアライズのシナリオを簡単に構築できることがわかりました。Ice's Slice を使って同じことをしたいと思います。

私が見る主な利点は、スライスが「構造体」に加えて「クラス」をサポートしているように見えることです。これらのクラスは継承をサポートしています。Iceが提供する残りのトランスポートレイヤーなどを無視しながら、これらを単純な方法でシリアル化してみたいと思います。

単純なクラスを含む .ice ファイルで slice2java を実行することまではできましたが (まだ継承を使用していません)、続行する方法がわかりません。生成されたクラスは、それ自体をシリアル化する直接的な方法を提供していないようで、Ice ライブラリを使用してそれを行う方法に関するドキュメントが見つかりません。

例として、私がやりたいことをするための PB コードを次に示します。

Person p = Person.newBuilder().
  setEmail("John@doe.com").
  setId(1234).
  setName("John Doe").build();

//write the buffer to a file.
p.writeTo(new FileOutputStream("JohnDoe.pb"));

//read it back in!
Person IsItJohnDoe = Person.parseFrom(new FileInputStream("JohnDoe.pb"));
System.out.println(IsItJohnDoe);

誰かが同様の問題に遭遇した場合は、事前に感謝します。残念ながら、私はアイス/スライスを私が望むほど包括的に調査する時間がありません.

4

1 に答える 1