Java中如何监听任意一个方法被调用

用户昵称13579 2016-11-03 04:36:12
对非私有方法,有人可能会说继承这个类重写方法来监听就可以了,但这远达不到我想要的效果(见下面的例子)。其次,这个办法没有办法监听私有方法。

class C {
public void method() {
System.out.println("method");
}
}

class D {
public void method() {
...
new C().method();
...
}
}

对于上面这段代码,我希望在C.method()被调用时Thread.dumpStack(),无论是直接调用还是借助D.method()来调用都这么做,要如何实现?

另一种情况,涉及到私有方法:

class C {
public static void method1() {
new C().method3();
}

public void method2() {
method3();
}

private void method3() {
System.out.println("method");
}
}

同样是希望在C.method3()调用时Thread.dumpStack(),但这个是私有方法,没有办法重写,前面提到的办法还是不能用。
...全文
1456 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,550

社区成员

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

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