如题,作者一开始也遇到了这个比较棘手的问题。

话不多说,直接说解决方案。

这里使用bytestring,如果是object[]的话则用repeated定义即可。

那么问题又来了,用这个类型怎么做到与java中的object完全转换呢?

目前,作者发现bytestring对于java的object没有现成的序列化和反序列化方案,so直接用java中的对象输入流。

代码示例如下:

Object[] objects = new Object[]{"string", 9, '%', 3.2f, true, 5.1d, false};
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(objects);
byte[] byteArray = bos.toByteArray();
//ByteString bytes = ByteString.copyFrom(byteArray); //protobuf的包
//反序列化由bytestring转为object
//bytes.toByteArray(); //protobuf的包
ByteArrayInputStream byteInt = new ByteArrayInputStream(byteArray);
ObjectInputStream objInt = new ObjectInputStream(byteInt);
Object o = objInt.readObject();
System.out.println(o);

这里可以看到是可以序列化与反序列化的。需要注意的点是对象输入流需要的二进制要用对象输出流的byte数组。因为自定义的byte数组不一定符合对象输入流的规则,也就不能解析出对象了。(就是流中的一些前缀)

如果有帮助劳烦点个赞~


 
												

最新文章

  1. HAproxy配置文件操作
  2. Echarts的相关问题记录与应用
  3. Python读取xml报错解析--ExpatError: not well-formed (invalid token)
  4. Cocos2d-x PluginX (二)增加新的Plugin
  5. git中ssh配置方法
  6. 关于python中PIL的安装
  7. POJ-2378 Tree Cutting
  8. 一张图看Google MVP设计架构
  9. lightoj 1017
  10. ASP.NET - 使用 XML
  11. mysql5.6.16绿色版配置、运行
  12. JVM内存管理学习总结(一)
  13. ueditor 和 umeditor 粘贴过滤问题
  14. 更好的小票打印体验,huanent.printer2.0发布
  15. [Swift]LeetCode685. 冗余连接 II | Redundant Connection II
  16. 2019/2/11 LinuxRPM包管理
  17. skype客户端搜不到联系人解决办法
  18. hive之案例分析(grouping sets,lateral view explode, concat_ws)
  19. python【数据类型:字典】
  20. 【JSP】jsp报错:Syntax error, insert "}" to complete MethodBody

热门文章

  1. db2iupgrade / db2ckupgrade failure due to SQL0551N
  2. 全国分乡镇第七次人口普查数据shp数据库省市区县街道
  3. nginx auth_basic uwsgi 目录简易认证。
  4. Bug_Android error: duplicate attribute. (错误:重复属性。)
  5. el-dialog 嵌套子组件数据不刷新
  6. axios请求拦截封装理解
  7. springboot+vue本地部署
  8. sql-SQL Prompt
  9. 安装并学习git的基本使用;注册Github账号,并创建仓库,编辑自我介绍,并提交commit
  10. 高性能的StampedLock锁