最近在开发中遇到一个Protostuff序列化问题,在这记录一下问题的根源;分析一下Protostuff序列化和反序列化原理;以及怎么样避免改bug。
1. 问题描述有一个push业务用到了mq,mq的生产者和消费者实体序列化我们用的是Protostuff方式实现的。由于业务需要,我们要在一个已有的枚举类添加一种类型,比如:
1 public enum LimitTimeUnit { 2 NATURAL_DAY { 3 @Override 4 public long getRemainingMillis() { 5 Date dayEnd = DateUtils.getDayEnd(); 6 return dayEnd.getTime() - System.currentTimeMillis(); 7 } 8 }; 18 /** 19 * 距离当前单位时间结束剩余毫秒数. 20 * @return 21 */ 22 public abstract long getRemainingMillis(); 23 24 }