public class Main {
public static void main(String args[]) {
List list = new List(0);
int[] intArr = null;
list.fillWithRandom(intArr); // null pointer
list.print(intArr);
}
}
import java.util.*;
class List {
private static final int NUMINTS = 10;
private void list(int numInts) {
List list = new List(10);
int[] intArr = new int[10];
}
public List(int i) {
// TODO Auto-generated constructor stub
}
//fill array with random numbers
public void fillWithRandom(int intArr[]) {
Random r;
r = new Random();
int i;
for(i=0; i < NUMINTS ; i++)
intArr[i] = r.nextInt(); // null pointer
}
//display numbers
public void print(int intArr[]) {
int i;
for(i=0 ; i < NUMINTS; i++)
System.out.println(intArr[i]);
}
}
我在编译器中的消息说:
线程“main”java.lang.NullPointerException中的异常 在List.fillWithRandom(List.java:28) 在Main.main(Main.java:9)
答案 0 :(得分:4)
您将int
数组设置为null,然后将其传递给fillWithRandom
。然后,在没有为该数组实际分配任何空间的情况下,您尝试填充它。
您需要先分配内存才能使用它。
这是一个很好的简单开头:
public class test {
public static void main(String args[]) {
MyList list = new MyList(10);
list.fillWithRandom();
list.print();
}
}
import java.util.Random;
public class MyList {
private int[] list = null;
public MyList(int numInts) {
list = new int[numInts];
}
public void fillWithRandom() {
Random r = new Random();
for (int i=0; i < list.length; i++)
list[i] = r.nextInt();
}
public void print() {
for (int i=0 ; i < list.length; i++)
System.out.println(list[i]);
}
}
答案 1 :(得分:0)
您将空数组intArr
传递给方法fillWithRandom
。
答案 2 :(得分:0)
class Main {
private static Object intArr;
public static void main(String[] args) {
List list = new List(10);
list.fillWithRandom(intArr);
list.print(intArr);
}
}
import java.util.Random;
public class List {
private int[] list = null;
public List(int numInts) {
list = new int[numInts];
}
public void fillWithRandom(Object intArr) {
Random r = new Random();
for(int i = 0; i < list.length; i++)
list[i] = r.nextInt();
}
public void print(Object intArr) {
for(int i=0; i <list.length; i++)
System.out.println(list[i]);
}
}