日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java获取当前方法

發布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java获取当前方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.獲取當前方法堆棧,我們一般用

?StackTraceElement[] stes = Thread.currentThread().getStackTrace();

想要獲取當前方法,切記不夠靈活,使用數組stes的固定index(網上不少是這樣說的,請明辨之)。

讓我們來看api怎么說的吧?

getStackTrace

public StackTraceElement[] getStackTrace()
返回一個表示該線程堆棧轉儲的堆棧跟蹤元素數組。如果該線程尚未啟動或已經終止,則該方法將返回一個零長度數組。如果返回的數組不是零長度的,則其第一個元素代表堆棧頂,它是該序列中最新的方法調用。最后一個元素代表堆棧底,是該序列中最舊的方法調用。

如果有安全管理器,并且該線程不是當前線程,則通過?RuntimePermission("getStackTrace")?權限調用安全管理器的?checkPermission?方法,查看是否可以獲取堆棧跟蹤。

某些虛擬機在某些情況下可能會從堆棧跟蹤中省略一個或多個堆棧幀。在極端情況下,沒有該線程堆棧跟蹤信息的虛擬機可以從該方法返回一個零長度數組。

返回:
StackTraceElement?數組,每個數組代表一個堆棧幀。
拋出:
SecurityException?- 如果安全管理器存在,并且其?checkPermission?方法不允許獲取線程的堆棧跟蹤。
從以下版本開始:
1.5
另請參見:
SecurityManager.checkPermission(java.security.Permission),?RuntimePermission,?Throwable.getStackTrace()

注意,紅色標注的地方,棧頂是最新的方法調用,棧底是最舊的方法調用

2. 實例:

/*TestDumpThread .java*/ public class TestDumpThread {//Dump the current thread stack trace.public static void getCurrentStackTrace() {StackTraceElement[] stes = Thread.currentThread().getStackTrace();for (StackTraceElement element : stes) {System.out.println(element);}}public static void main(String[] args) {getCurrentStackTrace();} }

結果如下:

java.lang.Thread.getStackTrace(Thread.java:1479) TestDumpThread.getCurrentStackTrace(TestDumpThread.java:5) TestDumpThread.main(TestDumpThread.java:12)

?

?

?

轉載于:https://www.cnblogs.com/davidwang456/p/3836523.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java获取当前方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。