serialVersionUID被人干了,上线就报错

0 阅读1分钟
@Getter
@Setter
@Accessors(chain = true)
public class CostItemDomainDto extends BaseEntityDto {
    @Serial
    private static final long serialVersionUID = 62018563456989735L;

    private String title;
    private CostItemType type;
    private EnableModel status;
}

这段代码大家看着应该很熟悉了,serialVersionUID是满足序列化和反序列化做版本检测控制的,比如各种session、RPC、Redis缓存,但是Java有个设计缺陷:static成员无法继承故大量出现重复的: private static final long serialVersionUID = 62018563456989735L;

问题就在这个丑陋上,新同学来了觉得代码重复太高太丑直接给干了,昨晚发版立马就瘫了,大量用户被强制踢出、缓存击穿、DBA都来投诉,建议大家不要去动原来好好的东西,真确定没问题了再动哈,码字太慢,附上AI的解释:

image.png