concat连接字符问题
前言
最近项目上定时任务里遇到执行失败的情况,由于用的xxljob,详细的异常信息并没有打印出来,只是说有一个地方空指针了,由于没有现场环境,看了一遍代码也无法定位问题是出在哪里,后来将代码加上try catch之后,找到了问题所在
concat
这个是常用的一个字符连接函数,但是用不好的话可能回造成空指针问题,为什么会空指针呢,我们来看一下concat函数的源码
1 | public String concat(String str) { |
可以看到,第二行中的str.length(),如果str是null,那肯定就空指针异常了
解决
- 如果一定要用concat,可以使用三元符判断不为空再连接,否则返回空字符串“”
- 换别的函数,比如StringBuilder
- 或者用封装好的工具类,如Hutool里的StrUtil工具类
总结
使用场景里一定要确保连接的字符串都不为null的才可以用,否则请做判空处理或者使用其他函数,亦或者使用封装好的第三方工具类