尝试在方法(初学者Java)中使用(java.util.Random)时出现空指针异常

时间:2014-01-26 02:49:19

标签: java random nullpointerexception

我目前正在尝试编写一个非常简单的程序来测试" Random" class(java.util.Random)有几种方式,但是在尝试运行时我收到Null Pointer Exception错误。

我的代码:

import java.util.Random;

public class RandomTester
{
    public Random r;

    public RandomTester()
    {
        Random r = new Random();
    }

    public void printOneRandom()
    {
        int s = 0;
        s = r.nextInt(256);  //NULL POINTER EXCEPTION HERE
        System.out.println("Random 8-bit number: " + s);

    }

    public void printMultiRandom(int howMany)
    {
        for(int i=0 ; i<howMany ; i++)
        {
            System.out.println("Random 8-bit number: " + r.nextInt(256));
        }    
    }

}

如果我将构造函数从RandomTester()移动到其中一个方法,它可以正常工作,但我认为以上述方式编写它应该没问题。我可能只是不完全掌握一些基本的东西,或者我应该在其他地方实例化该对象。

感谢您的帮助,我没有使用BlueJ(学习者IDE)显示主要方法。这也是我第一次探索一些基本课程。

2 个答案:

答案 0 :(得分:1)

更改此

Random r = new Random();

r = new Random();

您之前正在初始化一个名称会影响您的实例字段的其他局部变量。因此,您的实例字段已初始化为默认值null

当您尝试在其中一种方法中使用它时,它仍然是null并在您尝试取消引用它以调用方法时为您提供NullPointException

答案 1 :(得分:0)

您正在构造函数中创建变量。请改用this.r = new Random();