请JAVA大神帮我看看这个程序有什么问题
万分感谢,实在查不出哪里出错了,初学者java基础很差,代码是java核心技术上抄的出错信息如下Exceptioninthread"main"java.lang.Stac...
万分感谢,实在查不出哪里出错了,初学者java基础很差,代码是java核心技术上抄的
出错信息如下
Exception in thread "main" java.lang.StackOverflowError
at jixusen_test.TraceHandler.invoke(proxy_test.java:34)
at com.sun.proxy.$Proxy0.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
以下重复错误出现很多次,是不是死循环什么的啊,求大神解答 展开
出错信息如下
Exception in thread "main" java.lang.StackOverflowError
at jixusen_test.TraceHandler.invoke(proxy_test.java:34)
at com.sun.proxy.$Proxy0.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
以下重复错误出现很多次,是不是死循环什么的啊,求大神解答 展开
2个回答
展开全部
sun公司对该异常的解释如下:
当应用程序递归太深而发生堆栈溢出时,抛出该错误。
所以你只需要检查你之前的代码,是否哪个地方使用了递归,看看这个递归有没有终止的条件,就可以了。
你这个程序最下面明显是一个递归啊,你看一看你这个递归有终止的条件吗。
当应用程序递归太深而发生堆栈溢出时,抛出该错误。
所以你只需要检查你之前的代码,是否哪个地方使用了递归,看看这个递归有没有终止的条件,就可以了。
你这个程序最下面明显是一个递归啊,你看一看你这个递归有终止的条件吗。
更多追问追答
追问
我打断点到System.out.print(proxy);就执行不下去了,错误也一直报的这个地方,难道这里有问题,但是怎么都看不出有递归啊,麻烦大神帮我看看
大神说最后是递归,我想知道这里不是参数和上面的invoke不一样吗,有什么讲究吗
追答
你下面的 invoke方法,接受了三个参数,一个object对象,一个本方法的对象,还有一个object数组。
然后你又在最下面 return了这个方法的对象,调用了这个方法,把两个参数传递了过去,然后程序接着调用这个方法,又到了return那里,再次调用了这个方法,如此,反反复复。
这种就称之为递归。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询