A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庭院深深深几许 金牌黑马   /  2019-3-7 10:53  /  647 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  在项目开发中,经常会遇到NullPointerException异常,特别是一些新手,非常的郁闷,有时候会很隐蔽,特别是不同的人书写的代码进行调用时。
  以下是我所遇到的NullPointerException异常情景:
  问题:
  1、循环List时,如:
  for(int i = 0,size = list.size();i < size;i ++){
  dosomething....
  }
  2、比较字符串时,如:
  if(str.equals("test")){
  dosomething....
  }
  3、调用对象的方法时,如
  System.out.println(str.toString());
  解决方案:
  1、对于这个问题,要不在使用之前判断其是否是非空,如:
  if(list != null){
  for(int i = 0,size = list.size();i < size;i ++){
  dosomething....
  }
  }
  要么返回的List对象大小为0的List,如:
  list = Collections.emptyList();
  2、对于这个问题,要么是在使用之前判断其是否为非空,如:
  if(str != null && str.equals("test")){
  dosomething....
  }
  要么是左边是已知的字符串,如:
  if("test".equals(str)){
  dosomething....
  }
  3、对于这个问题,若是使用toString()方法,可以这样,如:
  System.out.println(String.valueOf(str));
  即使该对象为null,但是其调用之后输出的字符串"null",也不会发生异常;
  若是调用其它的方法,则需要判断其是否为空,当然若你知道肯定不为空,则不必,若连你自己都无法确定是否非空,则必须要判断一下。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马