如何从该方法中获取方法名称?

And*_*Eve 6 java reflection android

我正在尝试创建一个从该方法返回方法名称的函数:

  public static String getMethodName(final int depth)
  {
    final StackTraceElement[] ste = Thread.currentThread().getStackTrace();
    return ste[ste.length - 1 - depth].getMethodName();
  }
Run Code Online (Sandbox Code Playgroud)

但是,当我从Activity.onCreate()调用此方法时,它返回"main"而不是"onCreate".

如何从该方法中获取实际方法名称?

Gur*_*oca 8

return ste[1+depth].getMethodName();
Run Code Online (Sandbox Code Playgroud)

如果你改变如上所述的return语句,你会得到立即调用方法名称,cource depth应该为零.

  • @Android Eve,ste [0] - > getStackTrace,ste [1] - > getMethodName,ste [2] - > getMethodName的直接调用者... (4认同)