Javaメソッドは、(そのクラスのメソッドその行と呼ばれるように)現在の情報を取得するために呼び出されます

公共 ボイドのtestMethod(){ 
        
        にTest1 T1 = 新しいTest1を()。
        t1.my(); 
        
    } 
    
    パブリック 静的 ボイドメイン(文字列[]引数){ 
        テストT = 新しいテスト(); 
        t.testMethod(); 
    } 
    
     クラスTest1を{
         公共 ボイド私の(){ 
            
            
            文字列タグ = この.getMyGrandpaStackTrace()。
            System.err.println(String.Formatの( "调用我的人是:%のS" タグ))。
        } 
         
         
         パブリック文字列getMyGrandpaStackTrace(){
                
             StackTraceElement []スタックトレース = にThread.currentThread()getStackTraceメソッド()。
                 StackTraceElement父 =スタックトレース[1 ]。
                StackTraceElementログ =スタックトレース[2 ]。
                文字列タグ = NULL ;
                以下のためにint型 i = 1; iは<stackTrace.length; iは++ ){ 
                    のStackTraceElement E = スタックトレース[i]は、
                    もし(!e.getClassName()。等号(log.getClassName())){ 
                        タグ = e.getClassName()+ "" +e.getMethodName();
                        破ります; 
                    } 
                } 
                もし(タグ== NULL ){ 
                    タグ = log.getClassName()+ "" + log.getMethodName()。

                } 
                System.err.println(String.Formatの( "父は%sの%sです。" 、father.getClassName()、father.getMethodName()))。
                System.err.println(String.Formatの( "私のおじいちゃんは%sです" 、タグ));
                リターンタグ。
    
            } 
        
    }

 

おすすめ

転載: www.cnblogs.com/JavaHxm/p/10985705.html