gpt4 book ai didi

java - 如何解决StackOverFlowError?

转载 作者:行者123 更新时间:2023-12-01 23:27:27 26 4
gpt4 key购买 nike

我的内部和外部类文件在这里:-

package com.demo;

public class Outer {
int outer_x=100;

void test(){
Inner inner =new Inner();
inner.display();
}
public class Inner {
void display(){
Outer ob=new Outer();
ob.test();

System.out.println("display: outer_x= "+outer_x);
}
}

}

另一个主类访问外部类成员:-

package com.demo;

class InnerClassDemo{
public static void main(String args[]){
Outer outer=new Outer();
outer.test();
}
}

异常(exception):-

Exception in thread "main" java.lang.StackOverflowError
at com.demo.Outer.<init>(Outer.java:3)
at com.demo.Outer$Inner.display(Outer.java:12)
at com.demo.Outer.test(Outer.java:8)

如何解决这个问题,请给我任何想法?

最佳答案

您的 test 方法创建一个 Inner 并调用其 display() 方法,该方法创建一个 Outer 并调用其 test 方法。代码中没有任何内容可以阻止此操作永远持续下去,直到调用足够的方法来填满堆栈空间并发生 StackOverflowError 为止。

要么没有test调用display,要么没有display调用test

关于java - 如何解决StackOverFlowError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com