目录
1、判断对象是否相等时,使用 Objects.equals(a, b)
3、包装类NPE(自动拆箱的陷阱。当使用包装类与原始类型做比对时,要特别注意空指针问题)
5、写方法时尽量不要返回 null 值--Collections.emptyMap/emptySet/emptyList()
1、判断对象是否相等时,使用 Objects.equals(a, b)
if (Objects.equals("null", word)) {
return defaultValue;
}else if(Objects.equals(word, StringUtils.lowerCase(defaultValue))){
return "same";
}
2、字符串 NPE
String str = "";
boolean empty = StringUtils.isEmpty(str);
3、包装类NPE(自动拆箱的陷阱。当使用包装类与原始类型做比对时,要特别注意空指针问题)
public static boolean methodName(Integer num){
//如果参数为null,此处会报NPE
return 0 == num;
}
4、集合list的NPE
if (CollectionUtils.isNotEmpty(list)) {
System.out.println("list不为空...");
}else {
System.out.println("list为空...");
}
依赖jar包
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
5、写方法时尽量不要返回 null 值--Collections.emptyMap/emptySet/emptyList()
返回集合的接口若需要返回空,则返回空集而不是 null
Collections.emptyMap/emptySet/emptyList();
不建议new 多个空的集合,否则会影响性能
6、 Optional
是 Java8 推出的解决 NPE 的利器,当它跟 Lambda 表达式结合时会非常强大。