Long value = RedisUtil.listOps()
.rightPop(RedisKeyConstant.KEY);
}
以上代码会出现类型转换错误。
问题原因:使用Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,数值自动转为了Integer类型
解决:
Object value = RedisUtil.listOps()
.rightPop(RedisKeyConstant.KEY);
/**
* 这里是因为Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,
* 数值自动转为了Integer类型,所以不能进行强转
*/
if (value != null) {
Long packagingTaskId = ((Integer) value).longValue();
}
}