java相当于__func__

Nor*_*sUp 5 java reflection func

#include <stdio.h>
void someFunc(void) {
  printf("%s\n"), __func__);
}
Run Code Online (Sandbox Code Playgroud)

每次调用该函数时,它将打印:

someFunc
Run Code Online (Sandbox Code Playgroud)

什么是Java等价物?

我已经找到

(new Exception()).getStackTrace()[0].getMethodName()
Run Code Online (Sandbox Code Playgroud)

java.lang.Thread.currentThread().getStackTrace()[1].getMethodName()
Run Code Online (Sandbox Code Playgroud)

但这些看似荒谬,是否有更简单的方法?

Ern*_*ill 6

不,没有更简单的方法.由于Java没有宏设施,因此没有什么能直接等同于C++版本.

  • 从技术上讲,`__func__`不是预处理器宏 - C或C++预处理器没有函数概念.它由编译器本身实现. (3认同)