关于空指针异常问题

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

首先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,或者是对象没有实例化希望以后不会再犯迷糊
时间: 2024-10-10 04:03:47

关于空指针异常问题的相关文章

[解决方法]Hibernate查询部分字段(含外键)出错,报空指针异常

假设当前表结构如下: food表字段有foodid,name,外键businessid,外键type business表字段有,name,外键type type表字段有id,name,foodid Hibernate生成的对应POJO分别是Food,Business,Type 需要查询food表部分字段,如name和外键businessid 则可在Food类中添加只有相应成员变量的构造方法,Food(String name,Business business) 使用hql语句 select ne

java 空指针异常造成的原因有哪些

实际上 空指针异常   也就是你用了一个没有实际值的对象 1. 某一对象没有被实例化,就拿来使用,如调用此对象的方法,会抛空指针异常. 2. 获取从别的对象传过来的对象为空 3. 数据库查询方面的空指针异常,数据库中储存的值为null或不存在 4.  结果集   rs   是空的啊或者未初始化就被调用了 昨天我就因为  数据库查询方面的空指针异常  造成页面加载不出来..呜呜呜呜 目前我认为就这些了,大家认为还有哪些请补充 java 空指针异常造成的原因有哪些,布布扣,bubuko.com

空指针异常

如果你对null 进行操作就会产生空指针异常Object obj = new Object();你要知道 obj是一个Object指针变量,指向Object类的一个实例我们说obj是一个对象 实质是它指向一个对象的首地址 如果这个指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错例如 Object obj = new Object(); obj.equals("123");这个是没错的但换下面语句 Object obj = null; obj.equals("12

给ViewPager设置adapter出现空指针异常 解决

问题描述: TopNewsAdapter topNewsAdapter = new TopNewsAdapter();System.out.println("11111111" + topNewsAdapter == null);// 返回false,表明topNewsAdapter 不为空System.out.println("11111111" + mViewPager == null);// 返回false,表明mViewPager 不为空mViewPager

jsp &lt;input type=&quot;checkbox&quot;&gt;标记的空指针异常

今天看到书上的一段代码是这样的: 这是<input  type="checkbox">标记的代码 <br>选择你喜欢的歌手: <input type="checkbox" name="singer" value="张">张歌手 <input type="checkbox" name="singer" value="李">

Spring+Struts 2 简单实例报空指针异常

空指针出现于Action注入位置..如果一般错误请检查配置文件. 我出的错误.在于拷贝了之前做的实例中的lib文件夹到这个工程中. 其中有个包为struts2-convention-plugin-2.3.16.3.jar 造成了包识别异常.出现空指针.有类似经历的可以查看,也给大家提个醒.不要一气呵成的导入所有包.容易出现混乱.也不利于大家清楚的认识包和代码的联系. Spring+Struts 2 简单实例报空指针异常,布布扣,bubuko.com

java String 空指针异常

如下代码中,第8行和第10行均会提示Exception in thread "main" java.lang.NullPointerException. 第12行的写法可行. 1 import java.util.*; 2 import java.io.*; 3 4 public class test { 5 public static void main(String[] args) { 6 7 String a = null; 8 if (a.equals(""

setOnClickListener报空指针异常

1.异常提示: 2.错误原因: 先看代码: public class MainActivity extends ActionBarActivity { private Button btn_test; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_test =

getBytes等空指针异常

在使用getBytes这个方法进行字符编码转换的时候回发生空指针异常,困扰了我近30分钟.最终得出如下解决方案,直接扔代码,相信各位兄台一定能看懂. String flag2 = req.getParameter("flag"); String temp = null; if(flag2 != null){ temp = new String(flag2.getBytes("ISO-8859-1"),"UTF-8"); } 这样经过判断就不会有空

FileAttributeView出现空指针异常原因分析

问题?   Java7新增了关于文件属性信息的一些新特性,通过java.nio.file.*包下面的类可以实现设置或者读取文件的元数据信息(比如最后修改时间,创建时间,文件大小,是否为目录等等).尤其是UserDefinedFileAttributeView,可以用来自定义文件的元数据信息.于是在自己的mac上写了个小程序测试了下: 1 import java.io.IOException; 2 import java.nio.ByteBuffer; 3 import java.nio.char