Java 或任何其他语言 : Which method/class invoked mine?

标签 java javascript python programming-languages classloader

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

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

其他编程语言呢?

编辑: 谢谢大家,JavaScript 怎么样? Python? C++?

最佳答案

这是 Java 特有的。

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

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

例子:

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

    // rest of you code
}

关于Java 或任何其他语言 : Which method/class invoked mine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3468101/

相关文章:

java - Maven2 IDEA项目,如何手动添加到web-inf/lib文件夹?

java - 如何初始化未知数组长度的多维数组

javascript - 以不同方式检查假值/真值有什么区别?

javascript - "Possibly undefined value",如何使 null 安全?

python - 如何使用 Wagtail CMS 修复此错误?

python - 从 Python 执行存储过程

python - Seaborn 散点图 - 标签数据点

java - 无法在Tomcat服务器中运行Maven Spring MVC项目

java - Hibernate:更好的单体类还是多个类映射?

javascript - 在 Vue.js 单文件组件中使用 jQuery 插件