问题:

当使用下面的方式的时候,如果user.getName本身就是空,那么就会出现空指针异常。

String username = user.getName;
if(!username.isEmpty()){
  //业务逻辑
}

解决:

使用 StringUtils 工具类(推荐)

Apache Commons Lang 提供了一个非常有用的工具类 StringUtils,可以帮助你处理字符串操作。你可以使用 StringUtils.isEmpty() 方法来同时检查字符串是否为 null 或空。

import org.apache.commons.lang3.StringUtils;

String username = user.getName();
if (StringUtils.isEmpty(username)) {
    // username is null or empty
} else {
    // username is not null and not empty
}

手动检查

你也可以手动检查字符串是否为 null,然后再检查是否为空:

String username = user.getName();
if (username == null || username.isEmpty()) {
    // username is null or empty
} else {
    // username is not null and not empty
}

使用 Objects 工具类(Java 8 及以上)

Java 8 引入了 Objects 工具类,可以简化 null 检查:

import java.util.Objects;

String username = user.getName();
if (Objects.isNull(username) || username.isEmpty()) {
    // username is null or empty
} else {
    // username is not null and not empty
}