Java语言中类似于C语言中__FUNCTION__的等效方法是什么?

9
为了调试目的,在Java中我想要打印出当前正在执行的函数名称。如果是C语言,我只需要使用printf("%s \n" ,__FUNCTION__)
2个回答

9
new Exception().getStackTrace()[0].getMethodName();

3
Thread.currentThread().getStackTrace()[1] 是一个更好的方法,因为它不会创建异常。 - RPM
1
人们说Java啰嗦?!太疯狂了。 - Yetti99
为初学者澄清RPM的评论:Thread.currentThread().getStackTrace()[1].getMethodName() - Robin Hsu
从我的最近测试来看,似乎是 Thread.currentThread().getStackTrace()[2].getMethodName()(而不是 '[1]')。 - Robin Hsu
把那个复杂性隐藏在一个函数里会很好。但是,当然,你不能这样做。 - Yetti99

2

我建议使用其中一个日志框架(目前logback和slf4j可能是最好的选择,但log4j也可以),然后您可以指定一个布局来打印方法名 这里是logback布局文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接