浅谈比较两个String是否相等的方法

  • 最近在review项目的代码的时候,发现有很多处比较String字符串是否相等的代码采取的是以下方式:(假设有2个String的变量str1、str2)

  1. str1.equals(str2)
  2. str1!=null && str1.equals(str2)

解析

  •         第1点是完全没有考虑str1为null的情况,当str1为1时,系统将抛出null point Execption,系统健壮性极差。

  •         第2点已经在考虑str1的为null的情况,代码不会出现异常,但整个项目可以会重复用到这条语句,故需考虑代码是否冗余。

建议

    在java.util.Objects中,已经封装好了如上面第二点的代码。具体的调用方式如下:

import java.utils.Objects;
.....
Objects.equals(str1,str2);

    Objects提供的静态equals方法,解释如下,如果str1和str2其中一个为null则返回false;如果2个都为null则返回true;当两者都不为null的情况下,调用str1中定义的equals方法,即str1.equals(str2)。

    优势显而易见,但是很多开发人员并不清楚utils包里面有封装该比较,故发此博文。



转载于:https://blog.51cto.com/7348450/1741028

    原文作者:weixin_33901641
    原文地址: https://blog.csdn.net/weixin_33901641/article/details/92178630
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞