我试图将一个数组作为参数传递给一个对象,但是它返回了一个空指针异常。
/**
*The array that holds all the numbers.
*/
private int[] nums;
public IntegerArray(int[] array)
{
nums = array;
}
编译器声明:
Exception in thread "main" java.lang.NullPointerException
at IntegerArray.<init>(IntegerArray.java:36)
第36行调用nums.length。
答案 0 :(得分:2)
根据我的理解,这就是你如何创建新的IntegerArray:
IntegerArray numholder = new IntegerArray(nums);
在尝试获取nums长度时出错。但是,除非您在未发布的代码中将其初始化,否则nums实际上从未初始化。当你说
private int[] nums;
java实际上并没有分配内存。它等待分配数组并给它一个长度。
nums = new int[10];
因此,除非您在调用new IntegerArray(nums);
之前在其他地方执行此操作,否则内存尚未分配,并且每次尝试执行与列表关联的操作时都会得到空指针。