我需要找到方法的调用者.是否可以使用堆栈跟踪或反射?

推荐答案

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace()

根据Javadocs:

数组的最后一个元素表示堆栈的底部,这是序列中最近的方法调用.

StackTraceElementgetClassName()getFileName()getLineNumber()getMethodName().

你必须通过实验来确定你想要的索引

Java相关问答推荐

如何专门保存数据而不显示在jTable中?

Jooq隐式地将bigint转换为数字,并且索引不起作用

如何用javac编译Java类,即使对像java.lang.*这样的基本类也没有任何依赖关系?

我想了解Java中的模块化.编译我的应用程序时,我有一个ResolutionException

Spring Batch 5-不要让它在数据库中自动创建表

使用意向过滤器从另一个应用程序启动服务

基于调车场算法的科学计算器

安装Java Jar应用程序的Install4j遇到ClassNotFoundException的运行时错误

为什么使用JDK21获取锁定锁比使用JDK11慢

如何使用带有谓词参数的方法,而不使用lambda表达式

MySQL数据库中未应用具有Spring数据的唯一约束

用户填充的数组列表永不结束循环

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

使用While循环打印素数,无法正常工作

如何在Java中为thunk创建映射器函数

如何在Jooq中获取临时表列引用?

如何在不作为类出现的表上执行原生查询?

本机方法(JNI)总是编译的吗?

用于Java的Visual Studio代码完成不起作用

rest api服务 spring 启动中出现IllegalFormatConversionException