分享一个空指针的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;
}
相关推荐
2301_800256111 分钟前
第十一章中的函数解读(1)
后端·asp.net
喵爸的小作坊3 分钟前
StreamPanel:一个让 SSE 调试不再痛苦的 Chrome 插件
前端·后端·http
神奇小汤圆4 分钟前
字符串匹配算法
后端
无限大610 分钟前
为什么网站需要"域名"?——从 IP 地址到网址的演进
后端
树獭叔叔16 分钟前
LangGraph Memory 机制
后端·langchain·aigc
BullSmall16 分钟前
Tomcat11证书配置全指南
java·运维·tomcat
永不停歇的蜗牛18 分钟前
K8S之创建cm指令create和 apply的区别
java·容器·kubernetes
Java编程爱好者19 分钟前
OpenCVSharp:了解几种特征检测
后端
爱学习的小可爱卢23 分钟前
JavaEE进阶——SpringBoot统一功能处理全解析
java·spring boot·后端·java-ee