📅  最后修改于: 2023-12-03 15:11:51.365000             🧑  作者: Mango
在Java中,我们可以通过以下两种方式来获取正在执行的当前方法的名称:
使用Thread.currentThread().getStackTrace()
方法:
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
System.out.println("当前执行的方法是:" + methodName);
该方法会返回一个StackTraceElement
类型的数组,其中每个元素代表一个方法调用的栈帧。我们可以通过getMethodName()
方法来获取当前方法的名称。
使用new Throwable().getStackTrace()
方法:
String methodName = new Throwable().getStackTrace()[0].getMethodName();
System.out.println("当前执行的方法是:" + methodName);
该方法同样会返回一个StackTraceElement
类型的数组,其中每个元素代表一个方法调用的栈帧。我们同样可以通过getMethodName()
方法来获取当前方法的名称。
需要注意的是,这两种方式都会返回当前方法调用栈的信息,因此实际获取到的方法名称可能并非我们所期望的方法名称,而是调用当前方法的方法的名称。如果我们只想获取当前方法的名称,可以通过选择数组中的对应元素来获得正确的结果。
以上是获取在Java中正在执行的当前方法的名称的两种方法。在实际开发中,我们可以根据具体情况来选择方法。如果只需要获取当前方法的名称,第二种方法可能更为简洁明了。但如果需要获取更多的方法调用栈信息,第一种方法则更为合适。