【问题标题】:Using Zeroc Slice / Ice for Data Serialization (vs. Thrift / Protocol Buffers)使用 Zeroc Slice / Ice 进行数据序列化(与 Thrift / Protocol Buffers 相比)
【发布时间】:2014-07-11 00:25:45
【问题描述】:

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

我发现在 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);

如果有人遇到过类似的问题,提前谢谢你。不幸的是,我没有时间像我想要的那样全面地研究冰/切片。

【问题讨论】:

    标签: serialization protocol-buffers thrift slice ice


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2016-04-26
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多