--
/** * java 测试类 <br> * * @author song * @date 2012-7-9 上午09:29:15 */ public class Test { public static int getLineNumber() { return Thread.currentThread().getStackTrace()[2].getLineNumber(); } public static String getFileName() { System.out.println("-----"); for (StackTraceElement e : Thread.currentThread().getStackTrace()) { System.out.println("-" + e.getClassName() + "-" + e.getFileName() + "-" + e.getLineNumber() + "-" + e.getMethodName()); } System.out.println("-----"); return Thread.currentThread().getStackTrace()[2].getFileName(); } public static void main(String args[]) { System.out.println("[" + getFileName() + " line:" + getLineNumber() + "]" + "Hello World!"); System.out.println(Thread.currentThread()); } }
留下一个问题,上面程序中的magic数字 2 代表什么含义呢?
0是thread.getCurrentThread()
1是getLineNumber()
2才是调用getLineNumber的类
---