随机生成器返回null

时间:2013-03-12 14:38:49

标签: java random

我正在使用BlueJ中的Java程序,我使用伪随机生成器生成最大数字和最小数字之间的随机数。我没有得到任何语法错误,但当我调用该方法时,它说它是空的。有谁有想法吗?我导入了Random-class,在构造函数中称为randomizer。

public void attackEnemy()
{
    int damage = 0;
    int max = 41;
    int min = 20;
    damage = randomizer.nextInt(max - min) + min;
    health = health - damage;
}

3 个答案:

答案 0 :(得分:3)

你做到了吗?

randomizer = new Random();

显示的代码段中唯一可以null的值是randomizer对象。您应该将它实例化到正在使用的类中的其他位置。

答案 1 :(得分:2)

像这样初始化你的randomizer: -

randomizer = new Random(); // Without this, it'll throw a NPE

答案 2 :(得分:0)

你需要声明随机数发生器实际上是一个随机数。在您的原始代码中,您似乎还没有完成计算。看看下面:

public void attackEnemy(){

int max = 41;
int min = 20;
Random randomizer = new Random();

int damage = min + (max - min) * randomizer.nextInt();
health = health - damage;
}

我还认为您收到空输出的原因是因为您没有返回任何内容。所以你也可以把它显示如下:

public int attackEnemy(){

int max = 41;
int min = 20;
Random randomizer = new Random();

int damage = min + (max - min) * randomizer.nextInt();
health = health - damage;

return health;
}