Java或任何其他语言:哪个方法/类调用了我的?

Dud*_*lul 12 javascript python java programming-languages classloader

我想在我的方法内部编写一个代码,用于打印哪个方法/类调用它.

(我的假设是我不能改变任何东西,除了我的方法..)

其他编程语言怎么样?

编辑:谢谢你们,JavaScript怎么样?蟒蛇?C++?

jjn*_*guy 19

这是Java特有的.

你可以用Thread.currentThread().getStackTrace().这将返回一个数组StackTraceElements.

数组中的第二个元素是调用方法.

例:

public void methodThatPrintsCaller() {
    StackTraceElement elem = Thread.currentThread.getStackTrace()[2];
    System.out.println(elem);

    // rest of you code
}
Run Code Online (Sandbox Code Playgroud)