有没有办法知道在运行时在Java中调用哪些方法。实际上我正在尝试检测那些被调用的方法,并根据调用的那些方法使用Java Reflection APIS从另一个类调用另一个方法。通过这种方式,我想首先将执行转移到我的方法,然后调用那些运行方法。
例如
//Method Invoked_Method = "get the invoked method here "
if(Invoked_Method.equals("somemethodName"){
//invoke Another method ..
}
虽然它是一个安全漏洞,但我正在团队中为安全产品工作。所以必须试验一下。
答案 0 :(得分:2)
您可能需要考虑AOP:http://aopalliance.sourceforge.net/
这允许您拦截与特定表达式匹配的方法调用,并增强或更改方法的默认行为。
如果您已经在使用它们,Spring和Guice框架提供了相对容易地利用AOP的方法。
答案 1 :(得分:0)
我想你所说的是你需要在运行时跟踪callstack。我发现了一个关于此的线索。 Check this out