IDEA Unboxing of ‘stringRedisTemplate.hasKey(xx)’ may produce ‘NullPointerException’ 警告

闲来无事发现项目里面使用stringRedisTemplate操作redis的代码一直有警告,平时也没怎么在意,然后就顺手处理了一下。这个警告大致的意思是拆箱时有可能空指针异常。具体如下:
在这里插入图片描述在这里插入图片描述

看hasKey源码可知,hasKey方法返回一个对象包装器,但在if条件内使用它隐式将其取消装箱(即,将调用结果转换为原始值)。如果由于某种原因该hasKey方法可能返回null,则会出现错误。为了安全起见,可以按以下步骤检查密钥是否存在:

if (Boolean.TRUE.equals(redisTemplate.hasKey(XXXX)) {
}

redisTemplate或stringRedisTemplate其他返回包装类型Boolean的同理,比如下面这个:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐