疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

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

Posted on 2010-01-14 10:33 疯狂 阅读(8828) 评论(1)  编辑  收藏 所属分类: java
通过ThreadgetStackTrace()我们可以获取当前线程的运行信息 ,通过此方法可以获取我们想要的调用者信息:
例子:被调用者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
 

评论

# re: java获取方法调用者信息的例子[未登录]  回复  更多评论   

2014-09-23 11:58 by sky
有个小问题想问下,比如我在T1中有个两个同名称的方法参数不同
都调用了 t2Method方法,这个时候我怎么在getCaller中区分具体是哪个方法调用的?

只有注册用户登录后才能发表评论。


网站导航: