package test;
/**
* 得到方法调用方的源代码行号.
*/
public class Test {
public static void main(String[] args) {
//
System.out.println(getLineNumber());
}
public static int getLineNumber() {
StackTraceElement[] ste = new Throwable().getStackTrace();
return ste[ste.length - 1].getLineNumber();
}
}
运行结果
8
getLineNumber() 方法便可获得当前调用行的行号。
需要注意的时,在编译时若采用 -g 参数的话必须有 lines 项。普通情况下是不带 -g 参数的,这时在编译后的类中存放有行号信息,否则就会输出 -1。
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。