在JAVA中如何获取当前源文件名以及代码的行号

在最近经历中,遇见了这样一个问题,如何获取当前源文件名以及代码的行号,只是了解到C语言有预定义宏__FILE__、__LINE__,它们在预处理的时候都已经确定好了,但是在JAVA中应该怎么获取输出呢。

经过查找发现java提供以下方法来获取当前文件名以及行号

Thread.currentThread().getStackTrace()[1].getFileName():获取当前文件名;
Thread.currentThread().getStackTrace()[1].getLineNumber():获取当前行号。

其中:Thread.currentThread().getStackTrace()返回的是一个数组形式的函数调用栈(栈顶在索引0处),其中第1个元素(索引为0)为最新调用的函数信息(getStackTrace()),第2个元素(索引为1)为当前函数(即调用getStackTrace()的函数)信息

 

 

posted @ 2019-02-20 20:23  李德东  阅读(3803)  评论(0编辑  收藏  举报