空指针异常

来源:互联网 发布:逐帧动画制作软件 编辑:程序博客网 时间:2024/06/02 02:12
空指针异常产生的主要原因如下:
(1)当一个对象不存在时又调用其方法会产生异常obj.method() // obj对象不存在
(2)当访问或修改一个对象不存在的字段时会产生异常obj.method() // method方法不存在
空指针的解决办法:

       重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。


JAVA基本数据类型初始化默认值
  int 0
  long 0L
  float 0L
  double 0D
  char ’\u0000’代表空格
  boolean false

所有引用数据类型 null


List  str ; str默认为null

List str = new Arraylist ; str 默认为[ ]  str.add(null);str.add(null); str变为[null,null]

Integer in = new Integer[3];  in是[null,null,null]

通过spring data mongo中获取的实体类不存在则返回null,mongodb中对应的限制不返回字段为null

通过spring data redis 的hash中获取map不存在则返回{ }

getmap中不存在的字段返回null


null代表的是该对象不存在,在此时调用该对象中的方法则会报空指针异常错误。


在map为{ },而执行如下方法时,最后两个方法会报NumberFormatException异常,其他的不会报异常

public QuestShows(Map<String, String> map){sid = map.get("sid");question = map.get("question");answer = map.get("answer");hint = map.get("hint");think = map.get("think");QTDicPoint = map.get("QTDicPoint");QTDicFormular = map.get("QTDicFormular");practice = map.get("practice");knowledges = map.get("knowledges");videos = map.get("videos");diff = map.get("diff");type = map.get("type");subject = Integer.parseInt(map.get("subject"));section = Integer.parseInt(map.get("section"));}


public static void main (String args[]){List<String> str = new ArrayList<>();//List<String> str = null; 使用该行代码则会报空指针异常str.add(null);str.add(null);str.add(null);System.out.println(str.size());System.out.println(str);}


0 0
原创粉丝点击