-1

所以我正在制作一个游戏(http://www.sharkinggame.tk),每次我做这样的事情时,我都必须制作一个新的随机数,比如投一根鱼竿,看看你要等多久。所以这就是我认为应该起作用的东西。

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

我已经试过只是说return r.nextInt(10000);哪个也没用。

4

4 回答 4

1

如果你想要一个随机整数到某个常数,如

doSomething(randomNumberUpToConstant());

正确的方法是

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

    final int MAX_RANDOM_VALUE = 10000;

    public void myMethod(){
        doSomething(r.nextInt(MAX_RANDOM_VALUE));
    }
}
于 2013-11-11T22:41:11.067 回答
0
public class MyClass{
    private final Random r = new Random();

    private static final int RANGE = 10000;

    public int generateNewRandomNumber(){
        r.nextInt(RANGE);
    }
}
于 2013-11-11T22:44:20.430 回答
0

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

把这个Random物体想象成一口井——你挖了一口井,然后继续回到那里取水,你不会每次想喝水都挖一口新井。

于 2013-11-11T22:40:44.953 回答
0

如果不工作,我假设你得到一个错误。如果您没有添加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在你需要的地方使用一个实例。

于 2013-11-11T22:41:41.047 回答