java 动态代理 遇到异常 StackOverflowError

xiaomin_____ 2011-11-23 10:07:08
在jdk中遇到了这个StackOverflowError异常。。。不知道你们遇到过没有。。。。

public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {

//System.out.println(proxy);//调用这个会出现StackOverflowError
//System.out.println(proxy.getClass());//调用class文件的时候怎么又不出异常了
method.invoke(obj, args);
return null;
}
有哪位高人知道为什么吗?讲下原因。谢谢
...全文
195 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
追风筝的孩子 2011-11-23
  • 打赏
  • 举报
回复
总之在里面不能调用proxy的代码
追风筝的孩子 2011-11-23
  • 打赏
  • 举报
回复
//System.out.println(proxy);//调用这个会出现StackOverflowError
Object proxy 这个proxy是指代理对象本身,如果调用了他的方法。。。就会死循环
比如你上面的
System.out.println(proxy)---->System.out.println(proxy)---->System.out.println(proxy)--->System.out.println(proxy)..........
因为你执行上面这个方法是时候,就会调用public Object invoke里面的代码,然后死循环了。。
至于proxy.getClass(),我自己也搞不清楚,楼下求解,按理说应该也是死循环的。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧