【发布时间】:2013-11-16 01:35:14
【问题描述】:
public class SearchComparison {
StopWatch watch = new StopWatch();
ArrayUtilities utilities = new ArrayUtilities();
public void main(String[] args){
watch.start();
utilities.generateRandom(5);
watch.stop();
}
}
我正在尝试运行此代码,但它给了我一个 NullPointerException 错误。但是,我使用的方法似乎单独工作正常。有人可以帮我指出我的错误吗? 提前谢谢!
以下是有问题的方法:
public class StopWatch {
private long startTime;
private long stopTime;
public long start(){
startTime = System.nanoTime();
return startTime;
}
public long stop(){
stopTime = System.nanoTime();
return stopTime;
}
}
public class ArrayUtilities {
public static int[] generateRandom(int n){
Random r = new Random(1);
int imax = Integer.MAX_VALUE;
int[] array = new int[n];
for(int i = 0; i < n; i++){
array[i] = r.nextInt(imax);
System.out.println(array[i]);
}
return array;
}
}
【问题讨论】:
-
如果您遇到 NPE 并需要我们的帮助,您需要向我们指出哪一行引发了异常。但是话虽如此,您没有静态的 void main 方法(您当前的 main 方法不是静态的)。这段代码甚至不应该运行,更不用说抛出 NPE。
-
... 也就是说,你的主要方法应该是
public static void -
堆栈跟踪告诉您 NPE 来自何处。如果您不发布堆栈跟踪,我们将无法帮助您理解它。
-
好的,当我将静态放在标题中时,它给了我一个错误。如果我将对象声明放在 main 方法中,它就可以工作。这是为什么呢?
-
您还没有发布 NullPointerException 堆栈跟踪,也没有指出导致异常的行。请在提出新问题之前为我们完成您的问题。
标签: java arrays object nullpointerexception