如何找到创建我的类对象的类/包/实例?

时间:2015-09-28 15:46:42

标签: java

我正在实现一个应该在更大项目的许多不同部分都有一个实例的类。如何在运行时找到我的类的对象创建的位置?例如,在哪个类或哪个包中。

2 个答案:

答案 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?