java中如何得到方法调用方的源代码行号

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。


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。