Java字符串比较方法equals的空指针异常的解决

更新时间:2023-07-14 13:23:33 阅读: 评论:0

Java字符串⽐较⽅法equals的空指针异常的解决
在Java语⾔中字符串⽐较有两种⽅式:== 和equals()。
等一秒钟“==”⽐较的是针对两个String类型变量的引⽤,当两个String类型的变量指向同⼀个String对象(即同⼀个内存堆),则返回true。⽽equals()⽅法是对String对象封装的字符串内容进⾏⽐较,相同返回true。
在⽤equals⽅法与其他值做⽐较的时候,有可能会导致抛出空指针异常。写⼀个⼩程序来举例说明:
报关英文public class StringEqual {
public static void equal1(String i, String j) {
try {
if(i.equals(j)) {
System.out.println("equal1相等");
}
} catch (Exception ex) {
System.out.println("equal1 异常:");
ex.printStackTrace();
} finally {
System.out.println("equal1结束");17again
}
}
public static void equal2(String i, String j) {
try {
if(j.equals(i)) {
System.out.println("equal2相等");
}
} catch (Exception ex) {
System.out.println("equal2异常:");
ex.printStackTrace();
bachelor
} finally {
System.out.println("equal2结束");
}
}
public static void main(String[] args) {
equal1(null,"abc");
equal2(null,"abc");
上海服装设计学校
}商务英语口语考试
}
运⾏程序可看到第⼀个⽅法抛出了java.lang.NullPointerException异常,⽽第⼆个⽅法没有。这是为什么呢?
看下equals⽅法的源码就清楚了
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
caac
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {建设工程安全生产管理条例
if (v1[i] != v2[i])
return fal;
i++;
}
return true;
}
}
return fal;
}
这⾥⽤ if (anObject instanceof String) 来判断传⼊的对象是否是String类型,如果不是直接返回fal。
因此在使⽤equals⽅法上,如果⼀个数值可能为空的对象实例,调⽤equals⽅法时,⼀定要遵循 “常量”.equals(变量) 或者后
输⼊的.equals(之前的)。这样就可以尽量避免空指针错误。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。账户性质
rookie

本文发布于:2023-07-14 13:23:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1096172.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   可能   指针
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图