java 如何打印函数名称和行号

如题所述

第1个回答  推荐于2016-03-09
翻阅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 代表什么含义呢?

0是thread.getCurrentThread()
1是getLineNumber()
2才是调用getLineNumber的类本回答被提问者和网友采纳
第2个回答  2014-11-06
用在哪里的,是打印文件、还是什么地方的。

java的输出快捷键_java的输出快捷键syso
1、第一首先要是java的代码很乱的话。按shift+Ctrl+F可以进行整理;格式整理化:shift+Ctrl+F。2、第二然后想要在写java代码轻松。按Alt+\/。java代码智能提示:Alt+\/。3、第三然后在java的代码中,移动某段代码。按Alt+方向键;移动代码:Alt+方向键。4、第四然后快速写出main方法代码。按main+Al...

java的Thread中setPriority怎样使用
1) Java 代码在程序中输出日志, 使用 android.util.Log 类的以下 5 个方法:Log.v()、Log.d()、Log.i()、Log.w()、Log.e()。分对应 Verbose、Debug、INFO、Warn、Error 的首字母。例如:Log.i( "类::函数名", "日期_时间_源码文件名_行号_日志信息内容" );2) C 代码在程序中输出...

java 编程 myeclipse 中的 各种快捷键 请告诉我几个好吗?
全局 下一个 Ctrl+.Java编辑器 显示大纲 Ctrl+O 全局 在层次结构中打开类型 Ctrl+Shift+H 全局 转至匹配的括号 Ctrl+Shift+P 全局 转至上一个编辑位置 Ctrl+Q Java编辑器 转至上一个成员 Ctrl+Shift+↑ Java编辑器 转至下一个成员 Ctrl+Shift+↓ 文本编辑器 转至行 Ctrl+L 搜索 作用域 功...

java代码转成伪代码
点击学习大厂名师精品课Java代码转换成伪代码的第一步是简化代码。需要将Java代码中的所有语言特性都转化为伪代码所支持的语言特性。同时,还需要将代码中的变量名、函数名等具体细节进行抽象化,以便更好地传达程序的算法思想。需要将Java代码转化为从上到下的伪代码语句。这需要根据Java代码的控制结构,如...

JAVA异常问题
举例:Testlog4.main (TestLog4.java:10) %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 %%: 输出一个"%"字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息 %n: 输出一个回车换行符,...

java中的时间操作问题,难题求解
public ActionForward automatic(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception{ ScheduletableActionForm newform = (ScheduletableActionForm)form;String id_str = request.getParameter("id");if(id_str==null){ id_str = newform.get...

出现了java.lang.nullpointerexception该怎样处理
at calendar.PrintMonthBody(calendar.java:515)at calendar.PrintMonth(calendar.java:507)错误在这两行就不用说了吧.至于NullPointerException ,说白了就是你想要得到的值没有得到,出现了null的情况,看你的程序可能在(没有具体看是不是这行)int startday = GetStartDay(year,month);\/\/Get number ...

相似回答