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

时间:2013-09-16 23:10:29

标签: java methods runtime

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

例如

//Method Invoked_Method = "get the invoked method here "

   if(Invoked_Method.equals("somemethodName"){
   //invoke Another method ..
   }
虽然它是一个安全漏洞,但我正在团队中为安全产品工作。所以必须试验一下。

2 个答案:

答案 0 :(得分:2)

您可能需要考虑AOP:http://aopalliance.sourceforge.net/

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

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

答案 1 :(得分:0)

我想你所说的是你需要在运行时跟踪callstack。我发现了一个关于此的线索。 Check this out