我是靠谱客的博主 激昂飞鸟,这篇文章主要介绍对象数组导致的空指针异常,现在分享给大家,希望可以做个参考。

构造方法的主要作用是创建对象,并对类进行初始化。

一般情况下:

new一个对象的时候要用到构造函数,若调用无参构造方法,则会使对象中的成员变量具有默认值,例如:int类型的默认值为0、引用数据类型的默认值为null;

当我们new一个对象数组时,需要为每一个元素实例化。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Student 成员变量名:(String类型)name、(Book类型)book; //new 一个对象数组,并未使用构造方法,若直接用set或get方法,会引发空指针异常 Student[] s = new Student[3]; s[0].setName("张三");//空指针异常 s[0].getName();//空指针异常 //此处用了空参构造,会对Student对象的成员变量进行初始化 s[0] =new Student();//对s[0]实例化 s[0].setName("张三");//不会报错 s[0].getName();//不会报错 //值得注意的是,若Student对象的成员变量有一个为对象(Book) //Book 成员变量名:id、name、price Book book1=new Book(); //如果访问变量book则会输出null System.out.println(s[0].getBook());//输出 null //若再访问book里面的成员变量,报错!因为book是null值,而空值不能访问 System.out.println(s[0].getBook().getId());//空指针异常 s[0].setBook(book1); System.out.println(s[0].getBook().getId());//不会报错

 

发生NullPointerException的情况:

1.调用 null 对象的实例方法时。
2.访问或修改 null 对象的字段时。
3.如果一个数组为null,试图用属性length获得其长度时。
4.如果一个数组为null,试图访问或修改其中某个元素时。
5.在需要抛出一个异常对象,而该对象为 null 时。

解决方案:

为每一个元素实例化!

可以用for循环为对象数组中每一个元素实例化

看情况抛出异常

 

最后

以上就是激昂飞鸟最近收集整理的关于对象数组导致的空指针异常的全部内容,更多相关对象数组导致内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部