在C ++中,源代码和当前行号的文件由 FILE 和 INLINE 决定,这是在编译时确定的,Java中是否有任何方法那可以做类似的事情吗?文件和行号是在编译时而不是运行时决定的?这将方便日志。我有点怀疑使用运行时方法来检测这些信息会降低性能。
答案 0 :(得分:2)
您可以使用Thread.getStackTrace()
等
System.out.println(Thread.currentThread().getStackTrace()[1]);
输出包括当前方法和行号(如果编译了调试)。 例如,
com.stackoverflow.Main.main(Main.java:23)