浅谈比较两个String是否相等的方法
2016-02-04 00:04
239 查看
最近在review项目的代码的时候,发现有很多处比较String字符串是否相等的代码采取的是以下方式:(假设有2个String的变量str1、str2)
【解析】
第1点是完全没有考虑str1为null的情况,当str1为1时,系统将抛出null point Execption,系统健壮性极差。
第2点已经在考虑str1的为null的情况,代码不会出现异常,但整个项目可以会重复用到这条语句,故需考虑代码是否冗余。
【建议】
在java.util.Objects中,已经封装好了如上面第二点的代码。具体的调用方式如下:
优势显而易见,但是很多开发人员并不清楚utils包里面有封装该比较,故发此博文。
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包里面有封装该比较,故发此博文。
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- 主页木马的制作方法
- 解密网页加密的两个方法
- Prototype源码浅析 String部分(二)
- 定义标题的最好方法
- Ruby简明教程之方法(Method)介绍
- Ruby基础知识之方法、代码段
- Ruby中的String对象学习笔记
- C#获取文件夹及文件的大小与占用空间的方法
- Delphi控件ListView的属性及使用方法详解
- VB6实现连接Access数据库的ADODB代码实现方法
- MySQL重定位数据目录的方法
- PostgreSQL ERROR: invalid escape string 解决办法
- PowerShell中Get-Date对象的常用属性和方法介绍
- 在Linux上运行C#的方法
- C#实现绘制面形图表的方法详解