版权声明:本文为博主原创文章,转载请注明作者和出处,如有错误,望不吝赐教。 https://blog.csdn.net/weixin_41888813/article/details/84562033
NullPointerException简介
- 所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。
- 所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。
- 所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。
目录
1,String类型
String类型的对象可以做如下判断
if ( rb != null && !"".equals(rb)){
......
}
当然还可以多做一个判断,是否不为空字符串
if( rb != null && !"".equals(rb.trim())) {
......
}
代码段2:
一个小技巧:如果要把某个方法的返回值与常量做比较,把常量放在前面,可以避免调用null对象的equals方法。譬如:
扫描二维码关注公众号,回复:
4261615 查看本文章
if ("root".equals(userName)) {
....
}
即使userName对象返回了null对象,这里也不会有空指针异常,可以照常运转。
2,接口类型
接口类型的对象没有用具体的类初始化,比如:
List lt; 会报错
List lt = new ArrayList(); 则不会报错了
- 在空对象引用,调用接口方法:java.util.List.size()
3,当一个对象的属性的值为空
再补充下说明:
java语言里面都是通过一个个类协同工作来实现各种功能的。
例如你定义好了一个类,直接通过类名定义一个对象
Class class;
此时,这个class被声明了类型, 默认 class = null; 这样在调用class.xxxx()的时候系统只能给你个空指针异常。
想不要空指针那么就给class做个赋值操作就好了,例如 class = new Class();
实际如下:代码段4:
public static void main(String args[]){
Person p=null;
p.setName("张三");
System.out.println(p.getName());
}
分析:声明一个Person对象,并打印出该对象的中的Name名字。
说明:这个时候你的p就出现空指针异常,因为你只是声明了这个Person类型的对象并没有创建对象,所以它的堆里面没有地址引用,切忌你要用对象掉用方法的时候一定要创建对象。
参考来源于: