分享一个空指针的bug

今天分享一个线上bug,还好没有出大问题,默默改掉了。

代码大致如下:

typescript 复制代码
public class ContainTest {
    
    public static void main(String[] args) {
        List<String> list = getList();
        String a = list.get(0);
        String b = list.get(1);
        //只判断了a是否为null,没判断b,造成了contains方法抛出空指针
        if (!StringUtils.isEmpty(a)&&a.contains(b)) {
            System.out.println("a包含b");
        }
    }


    private static List<String> getList() {

        List<String> list = new ArrayList<>();
        list.add("test");
        list.add(null);
        return list;
    }
}

String的contains方法的参数不能为null,否则会抛出空指针异常。 我们看下contains方法的源码:

typescript 复制代码
public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}
相关推荐
智码看视界11 分钟前
老梁聊全栈系列:(阶段一)架构思维与全局观
java·javascript·架构
黎宇幻生13 分钟前
Java全栈学习笔记33
java·笔记·学习
程序员码歌2 小时前
明年35岁了,如何破局?说说心里话
android·前端·后端
橙*^O^*安3 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
BillKu3 小时前
推荐 Eclipse Temurin 的 OpenJDK
java·ide·eclipse
Morri33 小时前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
悟能不能悟3 小时前
eclipse怎么把项目设为web
java·eclipse
工程师小星星3 小时前
Golang语言的文件组织方式
开发语言·后端·golang
乂爻yiyao3 小时前
java 代理模式实现
java·开发语言·代理模式
2301_770373733 小时前
Java集合
java·开发语言