3

可能重复:
获取当前执行方法的名称

有没有办法Java让给定的方法知道自己的名字?如果是这样,如何从方法内部引用它?

4

2 回答 2

5

您可以通过分析堆栈跟踪来确定它。但它可能会带来相当大的性能损失。在 AOP 世界中,您还可以拥有将确定方法名称并将其存储在某种上下文中的方面。

在堆栈跟踪方法中,您会执行类似的操作

Exception e = new Exception();
e.fillInStackTrace();
e.getStackTrace()[0].getMethodName();

或(如评论中所建议)

Thread.currentThread().getStackTrace()[0].getMethodName();
于 2012-09-11T00:50:48.177 回答
4

堆栈跟踪的第一个元素(Thread.currentThread().getStackTrace()参见此问题)应该告诉您当前在运行时使用哪种方法。

于 2012-09-11T00:51:11.047 回答