您的位置:首页 > 其它

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

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

str1.equals(str2)

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包里面有封装该比较,故发此博文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  方法 string equals