1

I am implementing a class that is supposed to have a instance in many different parts of a bigger project. How can I find out at runtime where an object of my class was created? For example in which class or in which package.

Christian
  • 1,341
  • 1
  • 16
  • 35

2 Answers2

1

Retrieve the stack of the call than access the single StackTraceElement as needed:

public YourConstructor() {
     ....
     StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
     int depth = 1;   // Check for different depths is necessary.
     System.out.println(stackTraceElements[depth].getClassName());
     ...
}
Davide Lorenzo MARINO
  • 26,420
  • 4
  • 39
  • 56
0

Well you can use Java's stacktrace element.

Check here for that and more alternatives How do I find the caller of a method using stacktrace or reflection?

Community
  • 1
  • 1
saurav
  • 5,388
  • 10
  • 56
  • 101