java获取当前方法
生活随笔
收集整理的這篇文章主要介紹了
java获取当前方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.獲取當(dāng)前方法堆棧,我們一般用
?StackTraceElement[] stes = Thread.currentThread().getStackTrace();
想要獲取當(dāng)前方法,切記不夠靈活,使用數(shù)組stes的固定index(網(wǎng)上不少是這樣說的,請明辨之)。
讓我們來看api怎么說的吧?
getStackTrace
public StackTraceElement[] getStackTrace()如果有安全管理器,并且該線程不是當(dāng)前線程,則通過?RuntimePermission("getStackTrace")?權(quán)限調(diào)用安全管理器的?checkPermission?方法,查看是否可以獲取堆棧跟蹤。
某些虛擬機在某些情況下可能會從堆棧跟蹤中省略一個或多個堆棧幀。在極端情況下,沒有該線程堆棧跟蹤信息的虛擬機可以從該方法返回一個零長度數(shù)組。
注意,紅色標(biāo)注的地方,棧頂是最新的方法調(diào)用,棧底是最舊的方法調(diào)用
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();} }結(jié)果如下:
java.lang.Thread.getStackTrace(Thread.java:1479) TestDumpThread.getCurrentStackTrace(TestDumpThread.java:5) TestDumpThread.main(TestDumpThread.java:12)?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/3836523.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java获取当前方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事务策略: 了解事务陷阱--转
- 下一篇: linux 管道--转