关于Java空指针异常的一个注释和需要注意的问题

作者:%e7%a7%8b%e5%a4%a9%e7%9a%84%e8%af%89%e8%af%b4 和java相关  

关于Java空指针异常的一个注释和需要注意的问题

Java空指针异常(java.lang.NullPointerException),顾名思义,即对象没有进行实例化便进行了使用

实例化的意义,就是将对象实例的地址赋值给对象符号。

比如:

String a = new String();

这行代码的作用:在堆中将String的实例构造后,将地址赋值给a

String a = "123"

这行代码的作用:将常量池中的"123"这个对象实例的地址赋值给a

引发空指针异常,往往是在获取对象实例地址的时候,由于获取的对象实例并不存在,因此返回的地址为null,而又没进行判断,直接使用了该对象实例(地址)引发的。

例如:


如果request中并不存在"username"字段,则自然getParameter返回的是null。而调用userName(为null)的equals会抛出异常。

小技巧:如果要把某个方法的返回值与常量做比较,把常量放在前面,可以避免调用null对象的equals方法。因为空对象没有equals()方法,不能够使用".equals"方法。

例如上述改成:"root".equals(userName);

因此,我们在进行对象实例地址的获取赋值的时候,获取之后,要进行必要的判断。这种情况多发生在查询数据库、从DAO对象中获取对象等中。

例如一个数据库查询对象DAO的使用:List<***> result =DAO.select();如需在result没有取出结果的时候进行错误处理,这需要包含两个判断:

(1)判断result为null,其业务意义是没有表,

(2)判断result.size()为0,其业务意义是表中没有记录。

即:


注意,这里的result == null要在result.size()==0之前才合理。否则会在没有表的时候,即result = null时,抛出空指针异常。

相关资料:

关于Java空指针异常的一个注释和需要注意的问题来源网络,如有侵权请告知,即处理!

编程Tags: