• 如何以纯文本方式简单快速记录java代码的调用过程


    示例

    以下面这个类为例:

    public class Test {
        void main() {
            System.out.println("main");
            test1();
            test2();
        }
    
        void test1() {
        }
    
        void test2() {
            test3();
            test4();
            test5();
            test8();
        }
    
        void test3() {
            System.out.println("test3");
        }
    
        void test4() {
    
        }
    
        void test5() {
            test6();
        }
        void test6() {
            test7();
        }
        void test7() {
    
        }
        void test8() {
    
        }    
    }
    
    

    main()的调用过程记录为:

    Test#main   //进入Test.main方法
    test1();    //执行Test.main里代码
    test2();    //执行Test.main里代码
    Test#test2  //进入Test.test2方法
    test3();    //执行Test.test2里的方法
        Test#test3  //进入Test.test3方法
        System.out.println("test3");    //执行Test.test3里的方法
    test4();    //缩进结束, 表示从Test.test3返回; test3()和test4()在同一个方法里, 缩进这两者之间的代码; 
    test5();
        Test#test5  //进入Test.test5, 下一行忽略了test5里的方法体
        Test#test6  //进入Test.test6
        Test#test7  //进入Test.test7
    Test#test8  //进入Test.test8,  test5()和test8()在同一个方法里, 缩进这两者之间的代码; 
    

    提示: idea里可以在代码上右键 -> copy/paste special -> copy reference(ctrl+shift+alt+c)复制方法的引用名; 结合ahk脚本可以截断包名, 只留下类名;

    规则说明:

    • 从上到下表示代码的执行过程;
    • 如果某行包含#号, 表示进入了某个方法, #前是类名, #后是方法名
    • 如果不包含#号, 表示是方法体里的代码, 有时候可以省略;
    • 如果从某个方法返回, 给返回的方法增加缩进; 缩进同级代码之间的代码(或者说: 同一个方法体里的代码保持相同的缩进);

    哪位大佬有好的方式欢迎指教.

  • 相关阅读:
    IOC Unity的配置问题
    编译时常量与运行时常量
    Revit二次开发,将插件按钮(Ribbon)变灰或者隐藏
    C#类库读取App.config配置文件
    winform固定窗体大小
    Revit二次开发,获取模型版本信息
    JavaScript:文件保存自動下載函數:Save和SaveAs
    JavaScript:年月日時分秒設置
    JavaScript:字符串の空格刪減和字符刪減功能
    JavaScript:獲取數據の類型
  • 原文地址:https://www.cnblogs.com/QIAOXINGXING001/p/15571809.html
Copyright © 2020-2023  润新知