在最近经历中,碰见了这样一个问题,如何获取当前源文件名以及代码的行号,只是了解到C语言有预约义宏__FILE__、__LINE__,它们在预处理的时候都已经肯定好了,可是在JAVA中应该怎么获取输出呢。java
通过查找发现java提供如下方法来获取当前文件名以及行号数组
Thread.currentThread().getStackTrace()[1].getFileName():获取当前文件名;
Thread.currentThread().getStackTrace()[1].getLineNumber():获取当前行号。
其中:Thread.currentThread().getStackTrace()返回的是一个数组形式的函数调用栈(栈顶在索引0处),其中第1个元素(索引为0)为最新调用的函数信息(getStackTrace()),第2个元素(索引为1)为当前函数(即调用getStackTrace()的函数)信息。函数