在IntelliJ中打印当前行号

时间:2019-06-26 06:52:12

标签: java intellij-idea

我正在尝试从intellij打印某个代码的当前行号(ide的行号)。我该怎么办?

1 System.out.print(getCurrentLineNo());//sample code
2 System.out.print(getCurrentLineNo());//sample code
3 System.out.print(getCurrentLineNo());//sample code
4 System.out.print(getCurrentLineNo());//sample code

3 个答案:

答案 0 :(得分:3)

一种方法是获取堆栈跟踪元素并调用getLineNumber

public static int getCurrentLineNumber() {
    return Thread.currentThread().getStackTrace()[2].getLineNumber();
}

请注意,我使用了索引2,因为它引用了调用getCurrentLineNumber的方法的框架。如果您只是内联进行此操作,即像这样:

System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber());

您应该改用索引1

请注意,索引0指的是getStackTrace方法的框架。

答案 1 :(得分:1)

我想为此而获得StatckTrace太昂贵了,但是它可以帮助您进行一些调试。

System.out.println(new Exception().getStackTrace()[0].getLineNumber());

此外,您可以查看here

答案 2 :(得分:1)

您可以获得这样的行号...

public static int getCurrentLineNo() {
        return Thread.currentThread().getStackTrace()[2].getLineNumber();
    }