Java如何取源文件中文件名和行号
如何取的Java源代码文件中文件名和行号:)
在C/C++的程序,编译器提供了两个宏来支持取得源文件中的行号和文件名,这两个宏是__FILE__,__LINE__
你可以如下的方法打印行号和文件名
include <stdio.h>
int main()
{
fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__);
return 0;
}
但是在JAVA下没有这两个宏,那么我们如何来取得文件名和行号,翻阅JDK,我们找到StackTraceElement这个类。这个类可以从Throwable取得,另外也可以从Thread类取得,通过这些我写如下的一个打印行号的测试程序:
public class LineNo {
public static int getLineNumber() {
return Thread.currentThread().getStackTrace()[2].getLineNumber();
}
public static String getFileName() {
return Thread.currentThread().getStackTrace()[2].getFileName();
}
public static void main(String args[]) {
System.out.println("["+getFileName()+":"+ getLineNumber()+"]"+"Hello World!");
}
}
留下一个问题,上面程序中的magic数字 2 代表什么含义呢?
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
新加坡联合早报 www.zaobao.com/ 新闻详情页面采用了一种没见过的技术应对复制与爬虫 例如 www.zaobao.com/news/china/story2…
为啥群晖待机也会有咯噔咯噔的声音,如果把系统,套件之类的安装在固态银盘上还会有这种声音吗? 有没有这样做的坛友讲讲啊。还有除了硬盘风扇的声音,还会不会有什么别的声音 解决不了…
我做了一个在 mac 平台上的工具,类似于系统工具箱,有些功能需要管理员权限。通常情况下,用户点击相应功能后,系统会弹出一个框,让用户输入密码给 root 权限,授权后软件执行…