【踩坑实录】Java运行程序报错“Exception in thread main java. lang. NullPointerException”

【踩坑实录】Java运行程序报错“Exception in thread main java. lang. NullPointerException”

知识分子没文化
2021-03-22 / 0 评论 / 1,017 阅读 / 408 字数 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年12月06日,已超过865天没有更新,如存在内容错误、图片加载失败、链接失效等问题,请留言反馈,博主将在第一时间进行修改。

环境说明:

开发环境:JDK 1.8 IDEA

系统:Win10 专业版

问题

大概是这样:在一个Student类中定义了一个静态对象数组以及其他的数据成员和成员方法,其中某个成员方法中包含对这个对象数组的部分操作。在main方法中申明一个Student的对象,通过Student对象调用这个方法操作静态数组,然后运行结果报错:

01

原因

问题原因其实很简单,就是没有对这个数组进行初始化操作,即当前只存在数组的声明,系统只为二维数组对象的引用变量分配了空间,并没有创建相应的数组对象 。那么在相关的方法中,自然无法对这个看似存在但实际却找不到影儿的数组进行操作,所以就会报错了。

02

解决办法

在类中再添加一个成员方法init(),给这个对象数组进行内存空间的申请及初始化:

03

然后在main方法中申明对象以后,首先调用init()方法对对象数组进行初始化。

04

其实刚开始想直接在重载的构造方法中调用这个函数,这样的话就不用手动调用了,在初始化对象时就会同时完成对象数组的初始化,但仔细一想好像也不行,每初始化一个对象就会重新初始化数组,这样就会造成原来数组的信息丢失。所以还是老老实实手动调用吧。

0

评论 (0)

取消