版本兼容问题 用于数据存储的持久化

/**
* 战斗兵种,包含最终战斗属性
*
* 此类对象将会被序列化之后保存在数据库中,使用VersionFieldSerializer实现向后兼容,
* 不可删除或修改已有字段,已有字段,新增字段需要使用@Since标记版本,已经标记的版本号不可修改
*/

      @Since(value = 1)
@Deprecated("这个是旧时代的东西了")
var stage: Int = 0, // 前后军军阶

      @Deprecated(message = "宝物改版, 一个英雄只有一个宝物且宝物没有类型", replaceWith = ReplaceWith("treasureMessage"))
val treasure: HashMap<TreasureType, TreasureMessage> = Maps.newHashMapWithExpectedSize(4),
原文地址:https://www.cnblogs.com/vana/p/11023304.html