Java 列出正在调用的方法的名称
我希望有一个类似反射的解决方案来显示调用的方法 例如:Java 列出正在调用的方法的名称,java,reflection,Java,Reflection,我希望有一个类似反射的解决方案来显示调用的方法 例如: public class Foo { public void bar() { new Y().x(); } } public class Y { public void x() { } } public class Main { public static void main(String[] args) { // SETTING UP THE MAGIC
public class Foo {
public void bar() {
new Y().x();
}
}
public class Y {
public void x() {
}
}
public class Main {
public static void main(String[] args) {
// SETTING UP THE MAGIC
new Foo().bar();
new Y().x();
}
}
输出应为:
1. Foo.bar
1.2 Y.x
2. Y.x
最理想的情况是,每次调用一个方法时都会触发一个事件处理程序(一些信息可以作为参数传递)
PS:我不想在生产环境中使用它,我只需要在没有虚拟复制粘贴的框架应用程序中显示输出时使用它。我将使用它定义一个方面,为每个方法调用写入日志消息。您可以在此处找到一个示例:。或在此:
此解决方案的优点是您不必对代码进行任何更改。进入aspectj需要一些时间,但它很好地满足了您的需求。如果您想在不污染代码的情况下实现这一点,就必须构建探查器代理 看看这个,它告诉你怎么做。具体来说,请看本文下面的评测方面 清单2是一个分析方面,可用于在JVM每次进入或离开方法时输出类名、方法名和时间戳