java获取方法调用者信息的例子

通过 Thread的 getStackTrace()我们可以获取当前线程的运行信息 ,通过此方法可以获取我们想要的调用者信息:
例子:被调用者T2.java
public   class  T2  {

    
    
public void t2Method(){
        getCaller();
    }

    
public  void  getCaller(){   
           StackTraceElement stack[] 
= Thread.currentThread().getStackTrace();  
           
for (StackTraceElement ste:stack){   
            
if((ste.getClassName().indexOf("T1"))!=-1){
                System.out.println("
called by "+ste.getClassName()+"."+ste.getMethodName()+"/"+ste.getFileName());
            }

           }
   
         }
  

}
调用者:
T1.java
public   class  T1  {

    
    
public static void main(String[] args) {
        
new T2().t2Method();

    }


}
运行显示:
called by com.test.T1.main/T1.java
 

你可能感兴趣的:(java获取方法调用者信息的例子)