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

阅读数:300 评论数:0

跳转到新版页面

分类

python/Java

正文

一、解决方法

这个警告大致的意思是拆箱时有可能空指异常。

改成下面这种方式

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

二、java的基础类与包装类

基本类型 包装类 默认值 字节数 表示范围
byte Byte 0 1byte -128~127
short Short 0 2byte -32768~32767
int 0L或者0l 4byte 4byte -2147483648~2147483,47
long Long 0 8byte -2^63 ~ 2^63-1
float Float 0.0F或者0.0f 4byte 1.4E-45~3.4028235E38
double Double 0.0 8byte 4.9E-324~1.7976931348623157E308
boolean Boolean false 1byte true false
char Character \u0000 2byte \u0000(即为0) ~ \uffff(即为65535)

1、基础类

(1)数据类型的自动转换

当一个较小的数据与一个较大的数据进行运算时,会自动把较小的数据转换为较大的数据。

(byte、short、char)< int < long < float < double

(2)数据类型的比较

基础类型使用==

基础类型与包装类进行比较时,包装类会自动进行拆箱,所以==和equals都可以。

包装类之间比较需要使用equals

但这里有一个特殊Integer,当Integer值在[-128,127]中的时候,由于值缓存在IntegerCache中,那么当赋值在这个区间的时候,不会创建新的Integer对象,而是直接从缓存中获取已经创建好的Integer对象,所以当值在[-128,127]之间时使用==也是会返回正确的结果

2、包装类

(1)包装类的用途

支持面向对象编程
支持范型
null值表示缺值或特殊状态

(2)常用方法

XXXValue() 将包装类对象转换为相应的基本数据类型
parseXXX(String s) 将字符串转换为相应的基本数据类型;
toString() 将包装类对象转换为字符串形式;
equals() 比较两个包装类对象是否相等;
compare() 比较两个包装类对象的大小关系。若第一个对象小于第二个对象,则返回一个负数;若两个对象相等,则返回0;若第一个对象大于第二个对象,则返回一个正数;
valueOf()  返回一个包含指定值的包装类对象。该方法是装箱的一种方式。

 




相关推荐

Dao层添加注解@Repository,这样可以将数据访问层的类标识为Spring Bean,同时它还能将标注的类中抛出来的数据访问异常封装为Spring的数据访问异常类型。

菜单&ldquo;Run-&gt;Edit Configuration&rdquo; <img src="http://1024s.top/mbstudy/image/id?id=

之前我已经装好了jdk,sdk,idea,genymotion模拟器。 1.将模拟器Genymotion和IntelliJ Idea相关联。 <a href="htt

一、检查File->Setting 二、检查File->Project Structure 三、检查maven中关于jdk版本的配置 <profiles> <profile>