博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java获取正在执行的函数名
阅读量:4839 次
发布时间:2019-06-11

本文共 3571 字,大约阅读时间需要 11 分钟。

利用StackTrace堆栈轨迹获取某个时间的调用堆栈状态。

1 package com.dsp.demo; 2  3 public class TechDemo { 4  5     public static void main(String[] args) { 6         System.out.println("Hello dsp!"); 7  8         System.out.printf("%x\n", 2129); 9 10         aMethod();11     }12 13     private static String getExecutingMethodName() {14         StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();15         StackTraceElement e = stackTrace[2];16         return e.getMethodName();17     }18 19     private static void aMethod() {20         System.out.println("######### aMethod #########");21         //String executingMethodName = Thread.currentThread().getStackTrace()[2].getMethodName();22         String executingMethodName = getExecutingMethodName();23         System.out.println(executingMethodName);24         String className = Thread.currentThread().getStackTrace()[2].getClassName();25         System.out.println(className);26         String fileName = Thread.currentThread().getStackTrace()[2].getFileName();27         System.out.println(fileName);28         System.out.println("******** aMethod ******");29 30         bMethod();31     }32 33     private static void bMethod() {34         System.out.println("######### bMethod #########");35         // String executingMethodName = Thread.currentThread().getStackTrace()[2].getMethodName();36         String executingMethodName = getExecutingMethodName();37         System.out.println(executingMethodName);38         String className = Thread.currentThread().getStackTrace()[2].getClassName();39         System.out.println(className);40         String fileName = Thread.currentThread().getStackTrace()[2].getFileName();41         System.out.println(fileName);42         System.out.println("******** bMethod ******");43 44         cMethod();45     }46 47     private static void cMethod() {48         System.out.println("######### cMethod #########");49         String executingMethodName = getExecutingMethodName();50         System.out.println(executingMethodName);51         String className = Thread.currentThread().getStackTrace()[2].getClassName();52         System.out.println(className);53         String fileName = Thread.currentThread().getStackTrace()[2].getFileName();54         System.out.println(fileName);55 56         saveA();57         updateB();58 59         System.out.println("******** cMethod ******");60     }61 62     public static void saveA() {63         System.out.println("######### saveA #########");64         // ###65         String executingMethodName = getExecutingMethodName();66         System.out.println(executingMethodName);67 68         // ###69         String name = new Object(){}.getClass().getEnclosingMethod().getName();70         System.out.println(name);71         System.out.println("******** saveA ******");72     }73 74     public static void updateB() {75         System.out.println("######### updateB #########");76         String executingMethodName = getExecutingMethodName();77         System.out.println(executingMethodName);78         System.out.println("******** updateB ******");79     }80 81 }

执行结果:

Hello dsp!851######### aMethod #########aMethodcom.dsp.demo.TechDemoTechDemo.java******** aMethod ******######### bMethod #########bMethodcom.dsp.demo.TechDemoTechDemo.java******** bMethod ******######### cMethod #########cMethodcom.dsp.demo.TechDemoTechDemo.java######### saveA #########saveAsaveA******** saveA ******######### updateB #########updateB******** updateB ************** cMethod ******

另附:

转载于:https://www.cnblogs.com/gotodsp/p/7357697.html

你可能感兴趣的文章
hbase读取文件
查看>>
2周《机电传动控制》学习笔记
查看>>
DS博客作业06--图
查看>>
安装--->Tomcat监控工具Probe
查看>>
Java网络编程(URL&URLConnection)
查看>>
Java NIO学习笔记---I/O与NIO概述
查看>>
java接口中的成员方法和成员变量
查看>>
java中构造函数的特点
查看>>
Qt5:窗口背景色的设置
查看>>
NFC初步接触
查看>>
Puppet常识梳理
查看>>
iframe内联网页的应用
查看>>
Appium + Python -------------元素定位
查看>>
Linux shell 自启动脚本写法
查看>>
Linux GNU GAS introduction
查看>>
CSS的常用属性(一)
查看>>
scrapy install
查看>>
android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器
查看>>
[bzoj2131]免费的馅饼 树状数组优化dp
查看>>
CreateMutex()参数报错问题
查看>>