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)出现异常
发布于 2010-11-02 14:28:02
将int数组设置为null,然后将其传递给fillWithRandom。然后,在没有为该数组实际分配任何空间的情况下,尝试填充它。
您需要先分配内存,然后才能使用。
这里有一个很好的简单的开始:
test.java:
public class test {
public static void main(String args[]) {
MyList list = new MyList(10);
list.fillWithRandom();
list.print();
}
}MyList.java:
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]);
}
}发布于 2010-11-02 14:30:59
您向方法fillWithRandom传递了一个空数组intArr。
发布于 2010-11-02 15:21:58
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]);
}
}https://stackoverflow.com/questions/4075384
复制相似问题