1

现在,我正在寻找的只是简单的序列化/反序列化。我不是在寻找传输层或其他网络堆栈元素。

我发现在 Thrift 和 Protocol Buffers 中构建一个简单的序列化/反序列化场景很容易。我想尝试使用 Ice's Slice 来做同样的事情。

我看到的主要好处是,除了“结构”之外,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

0

根据 ZeroC 文档,从 Slice 定义生成的所有 Java 类都实现了java.io.Serializable接口,因此您可以使用该接口对它们进行序列化。您可以在文档中找到更多详细信息:Java 中的可序列化对象

于 2014-08-21T20:02:42.607 回答