java开发中的常见代码黄线预警
java日常开发中,经常会碰到开发工具idea、Eclipse等在一些代码中报黄线,这对于很多具有强迫症的同学来说,也是一件很头疼的事,尤其是编码不注意规范的同学来说。
下面我就列举一些常见的黄线预警及其解决办法:
1、Reports local variable of wrapper type though all usages allowed to be primitive and count of unnecessary boxing/unboxing operations reduces
例:
解决方案:将黄线部分的包装类型Integer改成对应基本数据类型,即int
2、Unchecked assignment: 'java.util.LinkedHashMap' to 'java.util.Map<java.lang.String,java.lang.Object>
例子:
解决方案:添加泛型尖括号
new LinkedHashMap<>();
3、'while' loop replaceable with 'foreach'
例:
解决方案:
Iterator var2 = list.iterator();
for (;var2.hasNext();){
Object tem = var2.next();
maps.add(beanToMap(tem));
}
或者
Iterator var2;
for (var2 = list.iterator(); var2.hasNext();) {
Object tem = var2.next();
maps.add(beanToMap(tem));
}
4、'for' loop replaceable with 'foreach'
例:
解决方案:
for (String attr : attrs) {
//xxx
}
5、Value 'xxx' is always 'true'
例:
解决方案:
if (notNull) {
return true;
}
6、'if' statement can be simplified
例:
解决方案:
return str2 != null;
7、Anonymous new Comparator<String>() can be replaced with lambda
例:
解决方案:
tmpMap = new TreeMap<>((o1, o2)->o1.compareTo(o2));
———— 这是使用了java8中的拉姆达表达式优化
8、Wildcard type argument '?' explicitly extends 'java.lang.Object'
例:
解决方案:
Function<String, ?>
9、Can be replaced with single expression in functional style
例:
解决方案:
return first.orElse(null);