如何知道java中调用了哪些方法?

如何知道java中调用了哪些方法?,java,methods,runtime,Java,Methods,Runtime,有没有办法知道Java在运行时调用了哪些方法。实际上,我试图检测那些被调用的方法,并根据这些被调用的方法,使用Java反射API从另一个类调用另一个方法。通过这种方式,我希望首先将执行转移到我的方法,然后调用那些正在运行的方法 e、 g 虽然这是一个安全漏洞,但我在安全产品团队工作。因此,我们必须对此进行实验。我想您的意思是需要在运行时跟踪调用堆栈。我找到了一条关于这个的线索。 你可能想考虑一下AOP: 这允许您拦截与特定表达式匹配的方法调用,并增强或更改该方法的默认行为 如果您已经在使用它们

有没有办法知道Java在运行时调用了哪些方法。实际上,我试图检测那些被调用的方法,并根据这些被调用的方法,使用Java反射API从另一个类调用另一个方法。通过这种方式,我希望首先将执行转移到我的方法,然后调用那些正在运行的方法

e、 g


虽然这是一个安全漏洞,但我在安全产品团队工作。因此,我们必须对此进行实验。

我想您的意思是需要在运行时跟踪调用堆栈。我找到了一条关于这个的线索。

你可能想考虑一下AOP:

这允许您拦截与特定表达式匹配的方法调用,并增强或更改该方法的默认行为


如果您已经在使用它们,Spring和Guice框架提供了相对容易地利用AOP的方法。

可能是@JigarJoshi的副本这看起来像是一个将在不同线程上运行的监视器
。也许OP可以使用[
Thread#getAllStackTraces`]),但这看起来仍然不是一个好的选择。@JigarJoshi:是的。我希望得到不同的线程运行。让我试试第一条评论中的方法1。谢谢你的帮助@jigarJoshi:这不是重复的问题,我在这里尝试类似方法拦截的东西。但是谢谢你的回复,很高兴你的回复。似乎找到了我所有问题的答案。谢谢
//Method Invoked_Method = "get the invoked method here "

   if(Invoked_Method.equals("somemethodName"){
   //invoke Another method ..
   }