Java 如何重新运行静态整数数组?

Java 如何重新运行静态整数数组?,java,arrays,random,static,Java,Arrays,Random,Static,以下是我要重新运行的阵列: public static int[] rollDice(int dice[]) { // generate 5 random numbers / update dice array for (int i = 0; i < dice.length; i++) { dice[i] = (int)(Math.random() * 6 + 1); } return dice; } publicstaticint[]滚

以下是我要重新运行的阵列:

public static int[] rollDice(int dice[]) {
    // generate 5 random numbers / update dice array
    for (int i = 0; i < dice.length; i++) {
        dice[i] = (int)(Math.random() * 6 + 1);
    }

    return dice;
}
publicstaticint[]滚动骰子(int骰子[]){
//生成5个随机数/更新骰子数组
for(int i=0;i

如果我想重置这个数组并找到新的随机数,我该怎么做?我尝试了
rollDice()

public static final int[]骰子=新int[5];
然后使用您的方法滚动/重新滚动骰子,否则只需访问
dice

publicstaticvoidrolldice(){
//生成5个随机数/更新骰子数组
for(int i=0;i

<>有趣的事实:java没有C++和C++所做的静态函数变量。在这些语言中,它可能是这样的: (我为你们这些java家伙编写了一个java函数)

publicstaticint[5]rollDice(布尔重滚){
静态最终整数[]骰子=新整数[5];
if(重新滚动)(int i=0;i

如您所见,静态变量可以嵌入到这些函数中。如果你问我,这是一个巨大的缺点,Java不支持这一点,因为我一直在使用它来从类名称空间中隐藏它们。

返回数组没有意义,因为在调用方法rollDice()时已经有了对数组的引用

数组是通过引用而不是通过值发送的,这意味着您不是像处理int一样处理副本,而是修改原始数组

将返回类型更改为void并删除返回,您的代码应该可以正常工作。

您可以每次获得一个带有随机数的新动态长度数组,并且可以通过调用rollDice(整数值)进行访问。
You can get every time a new dynamic length array with random numbers, and you can access by call rollDice(integer value). 

public static int[] rollDice(int length) {
         final int dice[] = new int [length];
        // generate array with random values
        for (int i = 0; i < length; i++) {
            dice[i] = (int)(Math.random() * length + 1);
        }

        return dice;
    }
公共静态int[]滚动骰子(int长度){ 最终整数骰子[]=新整数[长度]; //使用随机值生成数组 for(int i=0;i
您遇到了什么错误?另外,这是一个方法,而不是数组。你不运行数组你认为
int dice[]
at
rollDice(int dice[])
代表什么?旁注:请使用
int[/code>而不是
int dice[]
。后者是针对C程序员的,而不是Java中的惯例。您得到的错误可能与方法的定义无关;如果您更新了问题以列出精确的(复制/粘贴)错误,这会有所帮助。它在
rollDice(int dice[]){…}
中的用途是什么?这与
rollDice(){..}
之间有什么区别?问题中的方法签名不同。它之前被隐藏了,所以你可能没有看到它
dice
实际上是方法
rollDice
@用户的一个参数。看起来OP code只是试图解决他的问题,而不是某种强制方法。
You can get every time a new dynamic length array with random numbers, and you can access by call rollDice(integer value). 

public static int[] rollDice(int length) {
         final int dice[] = new int [length];
        // generate array with random values
        for (int i = 0; i < length; i++) {
            dice[i] = (int)(Math.random() * length + 1);
        }

        return dice;
    }