【Java】关于Objects.equals(A,B)和A.equals(B)的区别

在Java开发中,为了避免A.equals(B)可能导致的NullPointerException,通常推荐使用Objects.equals(a,b)。Objects.equals()方法会处理null值,确保在比较时不会抛出异常,即使两个对象都为null,它也会正确判断为相等。这是提高代码健壮性的一个良好实践。
摘要由CSDN通过智能技术生成

我们平时开发时,经常会遇到对象比较是否相等的情况。
在Java中,A.equals(B)方法用于比较两个对象是否相等,当调用一个对象的 equals() 方法时,如果该对象是 null,则会抛出 NullPointerException 异常。
也就是说,我们在使用A.equals(B)这个方法的时候,如果A为null,则会抛出 NullPointerException 异常。
所以平常我们在开发时,经常会将确定绝对不会为null的值写在前面,例如 “张三”.equals(name)
而使用 Objects.equals(a, b) 的方式则不会抛出异常,因为 Objects.equals() 方法会自动处理 null 值。
因此,如果是在比较两个可能为 null 的对象时,使用 Objects.equals() 方法来避免 NullPointerException 异常。这也是编码规范中的推荐做法。

Objects.equals() 方法的实现原理如下:

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}

它甚至神奇到可以判断null和null是一致的,我觉得属实不错!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值