Exception in thread "main" java.lang.NullPointerException: Cannot assign field "val" because "p[0]" is null
今天写代码,写了个对象数组(即数组元素是对象),在调用的时候出现了上述问题,代码如下:
import java.util.Scanner;
/**
* @Author: DreamLy
* @Data: 2020/11/11
* @Description:
*/
public class Basic_Prommar {
public static void main(String[] args) {
P_num[] p = new P_num[10];
p[0].val = 10;
System.out.println(p[0].val);
}
}
class P_num{
int min;//与别人的最小重量
int min_num;//下标
int val;//自己的值
void getVal(int val){
this.val = val;
}
}
很显然,在使用对象数组的时候出现了问题,p[i]是null的。
后来一琢磨,是因为没有创建对象的原因。
P_num[] p = new P_num[10];
该语句仅仅是创建了一个数组,数组元素是对象变量,我们还没有给数组元素(也就是对象)创建空间。