加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java获取当前方法

发布时间:2020-12-14 06:18:53 所属栏目:Java 来源:网络整理
导读:1.获取当前方法堆栈,我们一般用 ?StackTraceElement[] stes = Thread.currentThread().getStackTrace(); 想要获取当前方法,切记不够灵活,使用数组stes的固定index(网上不少是这样说的,请明辨之)。 让我们来看api怎么说的吧? getStackTrace public []

1.获取当前方法堆栈,我们一般用

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

想要获取当前方法,切记不够灵活,使用数组stes的固定index(网上不少是这样说的,请明辨之)。

让我们来看api怎么说的吧?

getStackTrace

public [] getStackTrace()
返回一个表示该线程堆栈转储的堆栈跟踪元素数组。如果该线程尚未启动或已经终止,则该方法将返回一个零长度数组。

如果有安全管理器,并且该线程不是当前线程,则通过?RuntimePermission("getStackTrace")?权限调用安全管理器的?checkPermission?方法,查看是否可以获取堆栈跟踪。

某些虚拟机在某些情况下可能会从堆栈跟踪中省略一个或多个堆栈帧。在极端情况下,没有该线程堆栈跟踪信息的虚拟机可以从该方法返回一个零长度数组。

返回:
StackTraceElement?数组,每个数组代表一个堆栈帧。
抛出:
?- 如果安全管理器存在,并且其?checkPermission?方法不允许获取线程的堆栈跟踪。
从以下版本开始:
1.5
另请参见:
SecurityManager.checkPermission(java.security.Permission),?RuntimePermission,?

注意,红色标注的地方,栈顶是最新的方法调用,栈底是最旧的方法调用

2. 实例:

=</span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;void</span><span style="color: #000000;"&gt; main(String[] args) { getCurrentStackTrace(); }

}

结果如下:

java.lang.Thread.getStackTrace(Thread.java:1479512)

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读