项目场景
多个地方调用同一个查询列表API,前端传过来的时间字符串有可能根本不存在为null,也有可能是长度为0的字符串。
问题描述
使用如下的方式做判断会出现空指针异常
if (!startTime.isEmpty()) {
...
}
原因分析
String.isEmpty函数内部是用一个空的"“来实现的,使用该函数类似于将startTime参数与”"做相等判断,当参数为null的情况下是无法做比较判断的,所以出现了空指针。
解决方案
1、简单直接,同时使用两种判断方式
if (startTime != null && !startTime.isEmpty()) {
...
}
2、调用该API的时候统一规范,在请求中加入全部所需要的参数。