java – 用于动态获取当前方法名称的较短方法

参见英文答案 > Getting the name of the current executing method18
我正在寻找一种方法获取当前方法名称,而无需创建一个空白对象.有没有办法做到这一点?这将整理我们的日志记录代码.

这是我们现在所做的:

new Object() {}.getClass().getEnclosingMethod().getName(

解决方法

Thread.currentThread().getStackTrace()[1]?

由于这样,您可以检查更高级别的堆栈跟踪,您可以轻松地将其包装在帮助程序中(见下文).它还可以让您选择比方法名称更多的信息,比如文件名,行号等.

编辑助手方法可能看起来像这样(感谢@Esailija):

public static String getmethodName() {
    return Thread.currentThread().getStackTrace()[2].getmethodName();
}

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量