Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决堆栈溢出错误_Java_Recursion_Stack Overflow - Fatal编程技术网

Java 如何解决堆栈溢出错误

Java 如何解决堆栈溢出错误,java,recursion,stack-overflow,Java,Recursion,Stack Overflow,我有一个nextInt方法,它给了我一个stackoverflow错误: public int nextInt(int a){ int n = rand.nextInt(a); return n; } 并由以下代码行调用: int index = rnd.nextInt(Words.size()); System.out.println(rand.nextInt(10,20)); //prints random num between 10 and 2

我有一个nextInt方法,它给了我一个stackoverflow错误:

public int nextInt(int a){
        int n = rand.nextInt(a);
        return n;
    }
并由以下代码行调用:

int index = rnd.nextInt(Words.size());
System.out.println(rand.nextInt(10,20)); //prints random num between 10 and 20 inclusive
我理解它为什么会出错,但我不知道如何修复它。我在另一个程序中有一个类似的方法,它不会给我错误:

public int nextInt(int l, int h){
    int n = rand.nextInt(h - l + 1) + l;
    return n;
}
这一行代码正在调用:

int index = rnd.nextInt(Words.size());
System.out.println(rand.nextInt(10,20)); //prints random num between 10 and 20 inclusive

任何有用的指针都会很好

首先,您还需要在该范围内定义随机对象,或者如果您正在定义随机对象,则需要将其声明为全局对象

你需要像htis那样做

public int nextInt(int a){

 // create random object
  Random rand = new Random();

 // check next int value
  int n = rand.nextInt(a);
  return n;
}

据我所知,在下面的场景中,递归没有发生(事实上,似乎是方法重载的情况):

public int nextInt(int l, int h){
    int n = rand.nextInt(h - l + 1) + l;
    return n;
}
因为
nextInt
方法在
int n=rand.nextInt(h-l+1)+l时有两个参数您仅使用一个参数调用
nextInt


而在第一个场景中,
nextInt
方法只有一个参数,在这个方法中,您使用单个参数对同一个
nextInt
方法进行递归调用。

您能否编辑您的问题以包括这些方法的声明位置和调用方式?否则就有点难说为什么会出错。你的问题中的
rand
是什么?请添加更多信息。我将对其进行编辑以显示它们的声明位置
rand
将使传递的值成为随机值。我必须等待5分钟,它才会允许我这样做。@SeanLynch很高兴能帮助您,并为这个委员会贡献力量