java中equals方法_JAVA中equals方法的使用技巧

在我们的JAVA开发中,经常 会用到一个方法:equals。一个字符串的比较方法,我们习惯的写:

if (b.equals(a)) {

...

}

还有一个我们经常遇到的   java.lang.NullPointerException   ,呵呵,这个是所有开发者遇到最多最常见的异常,

一种很常见的写法,但是昨天在论坛上看到一位哥们发了一个 java.lang.NullPointerException的错误 ,用到的是equals这个方法,这个错得有点离奇,表面 看没有什么问题:代码大概是这样的:

if (str.equals("")) {

...

}

其中他的str变量是从JSP页面传上来的变量值,咋一看这个地方不会出空异常啊。是啊。刚开始我也觉得,然后copy代码去运行一下,仔细查看,有问题,如果这个时候 str  变量值为 Null,那么,这个错误 就不奇怪了。

我的实验是这样 ,先定义一个变量a,模拟我们已知的变量,然后再定义 一个变量b,模拟我们从页面上传上来的值,

然后方法这样写:

public static void main(String args[]){

String a="a";//这个是已知的变量

String b="aaaaaaaaa";//这个是模拟页面传上来的变量

if (b.equals(a)) {

System.out.println("相等");

} else {

System.out.println("不相等");

}

}

正常情况下,两个变量都有值,那么程序不会出问题,但是如果这个时候b的值为Null,这个就有趣了,b这个变量直接为Null,然后再去调用这个Null对象的equals方法,直接就异常!

这样我们就要考虑我们程序的健壮性,

"".equals(str)和str.equals("")两个选择,"".equals(str)固然更保险。

从开始学习编程到现在,  java.lang.NullPointerException 从未停止出现,各式各样的Null,都已成为我们的口头禅,

殊不知,Null,有时候不仅仅是Null,去发现这些细节,我们的程序才能跑得更稳定 。

OK,又一个收获 。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2012-11-12 18:19

浏览 2282

评论

1 楼

一枝花算不算浪漫

2014-10-17

这个以前也见到过,让已知不为空的量equals(变量),博主写的很好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值