【问题标题】:NullPointerException object and arraysNullPointerException 对象和数组
【发布时间】: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


【解决方案1】:

该方法缺少修饰符static

应该是public static void main(String[] args) {

如下修改SearchComparison类的代码,你会得到正确的结果。

public class SearchComparison {

public static void main(String[] args) {
    StopWatch watch = new StopWatch();
    ArrayUtilities utilities = new ArrayUtilities();
    watch.start();
    utilities.generateRandom(5);
    watch.stop();
}

}

一次运行的结果如下:

1569548985
215764588
880641847
874970313
446064254

【讨论】:

  • 我有一个问题,如果我将对象声明放在那个 main 方法中,是否意味着它们也被声明为其他方法?
猜你喜欢
  • 2014-04-21
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
相关资源
最近更新 更多