我正在实现一个应该在更大项目的许多不同部分都有一个实例的类。如何在运行时找到我的类的对象创建的位置?例如,在哪个类或哪个包中。
答案 0 :(得分:1)
检索调用堆栈,而不是根据需要访问单个StackTraceElement:
public YourConstructor() {
....
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
int depth = 1; // Check for different depths is necessary.
System.out.println(stackTraceElements[depth].getClassName());
...
}
答案 1 :(得分:0)
您可以使用Java的stacktrace元素。
点击此处查看更多替代方案How do I find the caller of a method using stacktrace or reflection?