前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【踩坑实录】Java运行程序报错“Exception in thread main java. lang. NullPointerException”

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

作者头像
知识分子没文化
发布2023-07-01 15:14:41
1790
发布2023-07-01 15:14:41
举报
文章被收录于专栏:Roookie博客Roookie博客

环境说明: 开发环境:JDK 1.8 IDEA 系统:Win10 专业版

问题

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

01
01

原因

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

02
02

解决办法

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

03
03

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

04
04

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 原因
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档