java中关于equals方法使用的一些细节注意

java中关于equals方法使用的一些细节注意


     已经好久都没写博客了,看来当初每周定的至少写3篇博客的计划又泡汤了,最近都比较忙,各种事情都要做,在公司里忙这忙那,虽然自己的编程能力仍然十分欠缺,但自己的职场经验貌似你以前丰富了很多!3,4月份的时间估计是跳槽离职和面试的高峰期,跟自己同一批进来的应届生都已经纷纷提出了辞职,去寻找更好的下家。自己最近也有辞职的想法,但不管怎么样,时刻努力准备好面试和把自己的工作做好,一见到有好的跳槽机会就马上跳!不说那么多了,总之加油就好!
      说了那么多废话,还不如讲点实用的东西来得痛快!
      最近在编程的时候对equals还是颇有感触的,由于时间原因,下面就简单讲下equals一些注意事项。
      首先先上一段代码:

String [] resurt= this.test.Check(bean,dataMap);
			if(!resurt[0].equals("1")){  // 1表示通过验证
				logger.error("验证不通过!");
				throw new Exception("验证不通过");
			}

从以上代码中,我相信大家都已经看出隐患了吧,也就是说如果resurt[0]的值为null时,即!null.equals(“1”),遇到这种情况,我就呵呵了,经检测这种情况会报NullPointerException也就是空指针异常!那么该怎么改比较好呢???
很简单!有两种改法:

第一种:
将resurt[0]与“1”调换一下,即如下图所示:

String [] resurt= this.test.Check(bean,dataMap);
			if(!"1".equals(resurt[0]){  // 1表示通过验证
				logger.error("验证不通过!");
				throw new Exception("验证不通过");
			}

这样子调换位置,就不会报空指针异常了!

第二种
如果业务场景对null的值不做判断或者另作判断时,可以一开始对resurt[0]的结果进行一个初步判断,即加上if(resurt[0] != null && !resurt[0]).equals(""))这样的语句,这样就会过虑了空值和空字符串了。其次如果你还想对null值和空字符串进行判断时,可以在if下面再加个else进行判断!完整代码如下所示:

String [] resurt= this.test.Check(bean,dataMap);
if(resurt[0] != null && !resurt[0]).equals("")){
			if(!"1".equals(resurt[0]){  // 1表示通过验证
				logger.error("验证不通过!");
				throw new Exception("验证不通过");
	       }
	}else{
	..........这里可以根据需求做进一步的判断................
}
			

     总之大家以后在写代码时一定要对null值敏感点!就像我之前也讲过Integer,parseInt()这个方法使用不恰当的情况,也就是如果不加判断,直接Integer.parseInt(null)这样子的话是会报空指针异常的!

     所以以后大家在涉及到字符串的输出和输入时,务必多加个if(resurt[0] != null && !resurt[0]).equals(""))类似这样的判断,这样才会更保险点!

     好的,今天的内容就讲到这里!从现在开始,我要严格要求自己每周至少要输出3篇博客,不求有什么大的回报,只想养成一个总结和回顾的习惯,这样才能在巩固以前知识的基础上学到更多的东西!我有什么写得不好的地方,欢迎大家踊跃评论!谢谢!!

发布了17 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Melo_FengZhi/article/details/88071018