zoukankan      html  css  js  c++  java
  • 关于空指针异常问题

    一直都觉得空指针异常很好改,但是今天竟然调了一上午,郁闷呐,因此开始总结教训:

    首先svo是前端所传的对象,判断是否为空,如果为空则进行实例化

    if (svo == null) {
    //将svo实例化
    svo = new DosDossier();
    }
    String project_num = svo.getProjectNum();
    if (project_num.equals(ROOT_NODE) || Strings.isNullOrEmpty(project_num)) {
      Map<String, Object> param = Maps.newHashMap();
    param.put("svo", svo);
    param.put("startDate", startDate);
    param.put("endDate", endDate);
    }
    本来我认为这样写是没有问题的,但是加断点走到if语句就一直报空指针异常,后来才发现if里的判断条件写反了,而且null是没有equals的,当然会报空指针异常,
    也就是说当project_num的值为null时,由于null不存在equals(),因此直接报异常,正确的判断如下
    if (Strings.isNullOrEmpty(project_num) || project_num.equals(ROOT_NODE))
    其他的空指针异常大多就是没加判断是否为空或为null,或者是对象没有实例化
    希望以后不会再犯迷糊


  • 相关阅读:
    Python数据挖掘—回归—一元非线性回归
    Python数据挖掘—回归—线性回归
    Python 线程 进程 协程
    Python 异常处理
    Python Socket
    python mysql
    Python 面向对象
    Python 正则表达式
    Python 算法
    python 迭代器 生成器 装饰器
  • 原文地址:https://www.cnblogs.com/zhxn/p/6929129.html
Copyright © 2011-2022 走看看