首页 > 其他分享 >magic-byte转对象中需要注意的一些坑

magic-byte转对象中需要注意的一些坑

时间:2023-03-15 11:55:25浏览次数:56  
标签:需要 magic 自定义 对象 byte 序列化

  公司有对接网络设备的需要 ,由于协议是自己定的。所以对象在序列化时也需要自己序列化。很麻烦,在网上搜索了一圈。

找到了一个框架,可以通过注解来申明序列化过程。用起来还是很简单的,但是使用过程中发现以下坑:

 

  1. 当序列化为字节时,`dynamicSizeOf`引用为0, 但是实际数组有3个数据项,并没有序列化出数据。原因是两个数据必须保持一致。也就是有3个数据则synamicSizeOf引用的值需要为3
  2. string序列化时,默认为utf8,不支持全局配置。每个都要配置一遍,感觉不太方便。
  3. 暂时不支持自定义序列化,所以遇到一些系统内置类时,序列化还需要手动进行

 

以上为我使用的时候暂时遇到的问题,记录下来避免继续踩坑。

 

另外附上工具地址:

magic-byte: 一种简单的方式将java对象转为字节数据,用于快速高效的自定义序列化/反序列化场景,类似C的Strcut结构体,多用于私有通讯协议实现。 (gitee.com)

标签:需要,magic,自定义,对象,byte,序列化
From: https://www.cnblogs.com/raychang/p/17217987.html

相关文章

  • 面向对象
    面向对象1.构造器和类名相同没有返回值new本质在调用构造方法初始化对象的值定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造快捷键:Alt+I......
  • 面向对象高级
    static关键字static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量被static修饰的成员变量,一般叫做静态变量被static修......
  • enumerate()—返回遍历对象的索引
    语法格式enumerate(iterable, start=0)iterable:支持支持迭代的对象,包括字符串、列表、数组和字典等start--下标起始位置的值,默认为0代码示例str1="abcd"fori,......
  • UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 350: illegal
    ret=requests.get(url)#print(ret.text)ret=ret.content.decode("gbk")报错UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xbfinposition350:illegal......
  • es6 class对象转换es5
    在线转换工具https://babeljs.io/repl//es6classPerson{staticname='lisi'#age=null#sex=nullconstructor(){this.name='zhangsan'}......
  • 面向对象进阶
    面向对象进阶一、递归1.概念:方法自己调用自己,但是会在某一个时机进行第次返回。注意:递归的行为,通常要放在递归的条件之后publicclassTest{ publicvoidfun(int......
  • js 对比两个对象、基本类型是否一致
    这里需要理解的是基本类型,和对象 用java的话说就是(讲道理js 理论应该类似),基本类型在栈区,可以直接比较其值, 对象类型 存放于栈区 和 堆区,栈区存放的是对象在堆区......
  • JavaSE-day02(面向对象:内部类,枚举,泛型)
    一、内部类内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。当一个类的内部,包含一个完整的事物,且......
  • JavaSE-day01(面向对象高级)
    面向对象的核心:设计对象来处理数据,解决问题。一、静态static读作静态,可以用来修饰成员变量,也能修饰成员方法。1.1static修饰成员变量Java中的成员变量按有无static修......
  • 报表生成器 FastReport .Net 用户指南 2023(十二):公共对象属性
    FastReport.Net是一款全功能的WindowsForms、ASP.NET和MVC报表分析解决方案,使用FastReport.NET可以创建独立于应用程序的.NET报表,同时FastReport.Net支持中文、英语等1......