程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java如何取源文件中文件名和行號

Java如何取源文件中文件名和行號

編輯:關於JAVA

如何取的Java源代碼文件中文件名和行號:)

在C/C++的程序,編譯器提供了兩個宏來支持取得源文件中的行號和文件名,這兩個宏是__FILE__,__LINE__

你可以如下的方法打印行號和文件名

1.#include <stdio.h>
2.int main()
3.{
4. fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__);
5. return 0;
6.}

但是在JAVA下沒有這兩個宏,那麼我們如何來取得文件名和行號,翻閱JDK,我們找到StackTraceElement這個類。這個類可以從Throwable取得,另外也可以從Thread類取得,通過這些我寫如下的一個打印行號的測試程序:

01.public class LineNo {
02. public static int getLineNumber() {
03. return Thread.currentThread().getStackTrace()[2].getLineNumber();
04. }
05. 
06. public static String getFileName() {
07. return Thread.currentThread().getStackTrace()[2].getFileName();
08. }
09. public static void main(String args[]) {
10. System.out.println("["+getFileName()+":"+ getLineNumber()+"]"+"Hello World!");
11. }
12.}

留下一個問題,上面程序中的magic數字 2 代表什麼含義呢?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved