我是这个论坛和
Java的新手.下面的代码编译但是当我尝试为变量输入一个值时,我得到NullPointerException.怎么了?
class output_harm { public int[] timestamp; public int[] state; public output_harm(){ timestamp = new int[8]; state = new int[8]; } } output_harm[][] outputs = new output_harm[7][6]; outputs[0][0].state[0] = 0; //java.lang.NullPointerException
解决方法
问题
output_harm [] [] outputs = new output_harm [7] [6];
output_harm [] [] outputs = new output_harm [7] [6];
这只是初始化一个数组.
当你调用构造函数output_harm()时,它只会进行初始化.
state = new int [8];这里的状态在构造函数中初始化并导致NullPointerException.
解:
首先,您需要为每个output_harm初始化一个对象(如果您需要初始化整个数组)
output_harm[][] outputs = new output_harm[7][6]; for(int i=0;i<7;i++){ for(int j=0;j<6;j++){ outputs[i][j] = new output_harm(); } } outputs[0][0].state[0] = 1;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。