Java小细节

一、result == null 和 result.isEmpty()有什么区别

在 Java 中,result == nullresult.isEmpty() 是两个不同的检查,分别用于不同的目的:

result == null

这个检查用于确定变量 result 是否已经被初始化。如果 resultnull,那么它还没有指向任何对象。在这种情况下,任何尝试访问 result 的成员(包括方法和属性)都将导致 NullPointerException

result.isEmpty()

这个检查用于确定列表(或其他集合类型)是否包含任何元素。这个方法预期 result 已经被初始化(即它不是 null)。如果列表是空的(即没有包含任何元素),这个方法将返回 true

List<String> list1 = null;  // 未初始化的列表
List<String> list2 = new ArrayList<>();  // 已初始化但为空的列表

// 检查是否为 null
System.out.println(list1 == null);  // 输出:true
System.out.println(list2 == null);  // 输出:false

// 检查是否为空
// System.out.println(list1.isEmpty());  // 将导致 NullPointerException
System.out.println(list2.isEmpty());  // 输出:true

二、这if结构只是判断,为null的话,不进入就行,为什么会抛出异常呢

if (request.getCityName().getCityName() != null) {
    response.setCountUsersPerDistrict(countUsersPerDistrict(request.getCityName().getCityName()));
}


//这里有几个地方可能抛出 NullPointerException:

//如果 request 本身是 null,request.getCityName() 就会抛出异常。
//如果 request.getCityName() 返回 null,那么 getCityName().getCityName() 会抛出异常。

//即使你在 if 语句中进行了检查,这些检查也需要在访问任何属性或方法之前完成。否则,NullPointerException 仍然可能会发生。

//可以通过添加额外的 null 检查来避免这种情况:


if (request != null && request.getCityName() != null && request.getCityName().getCityName() != null) {
    response.setCountUsersPerDistrict(countUsersPerDistrict(request.getCityName().getCityName()));
}

//这样,只有在确认 request、request.getCityName() 和 request.getCityName().getCityName() 都不是 null 之后,才会执行 response.setCountUsersPerDistrict()。这应该能避免 NullPointerException。

三、返回200状态码

        if (result == null || result.isEmpty()) {
            throw new ResponseStatusException(HttpStatus.OK, "新增会员数为空!");

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值