现在,我正在寻找的只是简单的序列化/反序列化。我不是在寻找传输层或其他网络堆栈元素。
我发现在 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);
如果有人遇到过类似的问题,先谢谢了。不幸的是,我没有时间像我想要的那样全面地研究冰/切片。