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.
            Asked
            
        
        
            Active
            
        
            Viewed 49 times
        
    2 Answers
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?
 
     
    