如何在每次使用java执行操作时运行新的随机nextInt?

如何在每次使用java执行操作时运行新的随机nextInt?,java,random,game-engine,Java,Random,Game Engine,所以我在做一个游戏(),每次我做这样的事情时,我都要做一个新的随机数,比如,抛一根钓竿,看看你要等多久。所以这就是我所拥有的,我相信应该有效的东西 public int generateNewRandomNumber() { Random r = new Random(); int nextInt = r.nextInt(10000); return nextInt; } 我已经试着说了returnr.nextInt(10000)也不起作用。声明Random r=new

所以我在做一个游戏(),每次我做这样的事情时,我都要做一个新的随机数,比如,抛一根钓竿,看看你要等多久。所以这就是我所拥有的,我相信应该有效的东西

public int generateNewRandomNumber() {
    Random r = new Random();
    int nextInt = r.nextInt(10000);
    return nextInt;
}

我已经试着说了
returnr.nextInt(10000)也不起作用。

声明
Random r=new Random()一次,静态。然后在需要的地方使用
r
。不要继续重新创建新实例


Random
对象想象成一口井——你挖了一口井,然后一直回到井里取水,你不会每次想喝水的时候都挖一口新井。

如果你想要一个随机整数,比如

doSomething(randomNumberUpToConstant());
正确的方法是

public class EnclosingClass{
    Random r = new Random();

    final int MAX_RANDOM_VALUE = 10000;

    public void myMethod(){
        doSomething(r.nextInt(MAX_RANDOM_VALUE));
    }
}

如果不工作,我认为你会出错。如果您没有添加
import java.util.Random,就会出现这种情况到文件的开头。另外,请注意,最好创建一次
Random
。您的代码将如下所示:

import java.util.Random;
class SomeClass{
    Random r;
    public SomeClass(){
        r = new Random();
    }
    public int getRandomNumber(){
        return r.nextInt(10000); //numbers in the range [0,10000)
    }
}

然而,创建这样一个类是没有意义的。我建议您在需要的地方使用一个
Random
实例。

要更快获得更好的帮助,请发布一个。为什么它不起作用?情况如何?你期望什么?通常你会创建一次
Random
(比如存储在一个字段中),然后在同一个实例上重复调用
nextInt()
。你是在问如何生成不重复的随机数吗?你说的“不工作”是什么意思?这涉及到许多问题。另外,对于
Random
,您有什么
import
?它是
java.util.Random
还是其他类?好的,现在您已经更正了我的注释,我将删除它。
public class MyClass{
    private final Random r = new Random();

    private static final int RANGE = 10000;

    public int generateNewRandomNumber(){
        r.nextInt(RANGE);
    }
}