瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java獲取方法調用者信息的例子

          Posted on 2010-01-14 10:33 瘋狂 閱讀(8846) 評論(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中區分具體是哪個方法調用的?
          主站蜘蛛池模板: 德格县| 普宁市| 胶南市| 布尔津县| 扶沟县| 饶河县| 贵州省| 丹阳市| 万载县| 沁阳市| 柳江县| 专栏| 安徽省| 清远市| 米泉市| 新巴尔虎左旗| 阜城县| 江源县| 富裕县| 清水河县| 永顺县| 溧水县| 壶关县| 高尔夫| 牡丹江市| 绥滨县| 五家渠市| 榆林市| 师宗县| 海城市| 聂拉木县| 德兴市| 承德县| 湘潭县| 密山市| 松潘县| 边坝县| 奉化市| 成武县| 巩留县| 芜湖市|