IDEA是个十分智能化的开发工具,在代码有错时,会直接报红线,这我们都会去修改代码,但很多时候,IDEA会报很多黄色标识,这可能意味你的代码写的不那么规范,或者有许多不影响程序运行的小毛病。
尽管这些问题,可能看起来无伤大雅,但也应该力求完美,做到代码书写的规范、优雅。
下面记录一些IDEA常见的警示,其意义以及修正。
Private field ‘xxx’ is assigned but never accessed
引用其他类的方法时,会创建对应的私有属性类,在后续修改时,可能不再引用这个类,和这个方法了,此时就应该及时将这些无用的私有化属性删除。
其实IDEA也会给出对应的解决方法,可以参考借鉴。
New object is compared using !="
不建议直接使用" !="进行数值的判断,尤其这里还是一个Double类型的数值判断,IDEA建议使用 " !equals() "进行判断。
为什么呢?先看看“==”的含义
两个等于号,在进行判断时,如果数据是基本类型则是进行值比较。如果比较对象是引用类型,则进行引用地址的比较。
再看一下equals()的方法
public boolean equals(Object obj) {
return (obj instanceof Double)
&& (doubleToLongBits(((Double)obj).value) ==
doubleToLongBits(value));
}
明显此处,更多了一个Double类型的判断,之后再进行数据类型转换,进行值比较。
Variable ‘xxxx’ initializer ‘null’ is redundant
实例化变量时,将其赋值null,是没有必要多余的操作。比如
StudentDto studentdto = null;
Explict type argument RequestPay can be replaced with<>
存储特定对象的List数组在进行初始化时,只需要在数组中声明即可,对象中不需要声明。
List<RequestPay> payList=new ArrayList<RequestPay>();
-- 就应该改为
List<RequestPay> payList=new ArrayList<>();
Local variable ‘xxx’ is redundant
尽量减少没有必要的局部变量,每一次多余的变量开辟都是对资源的浪费。
比如这行代码就可以直接返回。
String dayAfter=DateUtil.formatTime(date,"yyyy-MM-dd HH:mm:ss");
return dayAfter;
-- 改为
return DateUtil.formatTime(date,"yyyy-MM-dd HH:mm:ss");
Variable ‘sendEmailAddr’ is never used
就和没有引用的包、没有引用的属性一样,没有引用,也就是无用的变量也应该及时删除,就算你没有引用,但是程序在运行时依然会执行这个语句,初始化这个变量,开辟资源。
@param XXX tag description is missing
出现原因:@param缺少参数描述
解决方法:增加参数表述,看网上有其他博主降低IDEA的筛选级别,这是不合理的,应该解决问题增加参数描述,而不是解决提出问题的人
在实际开发中,一定一定一定,把方法和类的注释写清楚,传入什么参数、返回什么参数,对应的方法描述,以及各个参数的大概含义,作者,编码时间等等,这些在后续代码维护中,能省下很多功夫。
以下就是目前所积累到的一些经验,欢迎大家指正和补充。