为了实现自定义的log类,能够输出具体的代码行行号,我通过使用StackTraceElement对象实现了。
这里指出需要注意的几个问题:
1. 程序中返回的代码行行号,是新建StackTrackElement对象的那一行。
2. 可以通过传参的方法实现输出特定行行号。具体实现见代码。
1/**
2 *
3 */
4package leo.demo.training;
5
6/**
7 * Get current java file name and current code line number
8 * @author Leo Xie
9 */
10public class CurrentLine {
11 /** *//** http://www.mscto.com
12 * @param args
13 */
14 public static void main(String[] args) {
15 StackTraceElement ste1 = null;
16
17 // get current thread and its related stack trace
18 StackTraceElement[] steArray = Thread.currentThread().getStackTrace();
19 int steArrayLength = steArray.length;
20
21 String s = null;
22
23 // output all related info of the existing stack traces
24 if(steArrayLength==0) {
软件开发网
25 System.err.println("No Stack Trace.");
26 } else {
27 for (int i=0; i<steArrayLength; i++) {
28 System.out.println("Stack Trace-" + i);
29 ste1 = steArray[i];
30 s = ste1.getFileName() + ": Line " + ste1.getLineNumber();
31 System.out.println(s);
32 }
33 }
34 // the following code segment will output the line number of the "new " clause
35 // that's to say the line number of "StackTraceElement ste2 = new Throwable().getStackTrace()[0];"
36 StackTraceElement ste2 = new Throwable().getStackTrace()[0]; http://www.mscto.com
37 System.out.println(ste2.getFileName() + ": Line " + ste2.getLineNumber());
38 // the following clause will output the line number in the external method "getLineInfo()"
39 System.out.println(getLineInfo());
40 // the following clause will output its current line number
41 System.out.println(getLineInfo(new Throwable().getStackTrace()[0]));
42 }
43
44 /** *//**
45 * return current java file name and code line number
46 * @return String
47 */
48 public static String getLineInfo() {
49 StackTraceElement ste3 = new Throwable().getStackTrace()[0];
50 return (ste3.getFileName() + ": Line " + ste3.getLineNumber()); http://www.mscto.com
51 }
52
53 /** *//** http://www.mscto.com
54 * return current java file name and code line name
55 * @return String
56 */
57 public static String getLineInfo(StackTraceElement ste4) {
58 return (ste4.getFileName() + ": Line " + (ste4.getLineNumber()));
59 }
60}
分享到:
相关推荐
在Java编程中,获取当前代码行行号对于debug和log记录非常重要。有了当前代码行行号,我们可以快速定位错误的代码位置,提高开发效率和代码质量。 二、StackTraceElement对象的使用 StackTraceElement对象是Java...
《JAVA_连连看_源代码行行注释》 该程序是使用Java语言实现的一款连连看游戏,通过Myeclipse 8.51作为开发环境,兼容Windows XP、Windows 7等操作系统。游戏具备基本功能,如退出、重列、再来一局,适合在普通...
统计指定目录C/C++/JAVA源代码的代码行,注释行和空白行行数。可以用通配符(*和?)指定要统计的文件的类型,可以指定多个文件类型
在当前社会,如五常这样的地方正面临从农村向城市的转型,如何平衡不同群体的利益,协调传统村落与现代城市的关系,以及如何持续发展村级经济,都是亟待解决的挑战。 回顾费老的《行行重行行》,我们可以感受到他对...
为了获取行号和列号,我们需要找到该单元格在父`tr`(行)中的索引(列号)以及该`tr`在父`tbody`(表格体)或整个`table`中的索引(行号): ```javascript var tdSeq = $(this).parent().find("td").index($(this...
VC 6.0枚举获取所有进程并进行管理-模拟一个进程管理器的写法,枚举Windows中所有正在运行的进程,本示例将演示如何获取进程路径,打开进程句柄,获取进程优先级,终止进程主函数,创建状态栏,获取当前行行号,...
该笔记主要介绍Java基础中的一些程序案例,包括打印星号、数据结构基础的原理程序等,可以用来复习Java基础知识,通过反复练习,巩固旧识。 1. a1_15_1【程序目标】打印 * * * 该程序的目标是打印一个由星号组成的...
在文件每行行首与行尾添加东西拼接SQL 有用
- 使用 `Selection.TypeText` 在当前行前面插入行号。 - 使用 `Selection.MoveDown` 将光标下移一行。 #### 使用宏的步骤 1. **启用宏**: - 在 Word 的“文件”菜单中选择“选项”,然后点击“信任中心”下的...
利用BigDecimal 大数据类 来保证精度 例如Double 2-1.1=0.89999,在大数据类就无异常 例如 9+(-9)=0 9--6=15 9*(-9--3)= -54 3 + (-2) -1 = 0 -9*(9--2)*-3 = 297 实现了键位绑定 本计算器回退功能是直接...
在这个游戏中,代码可能包含了类的设计,对象的创建和方法的调用,这些都是Java面向对象编程的核心概念。 游戏的实现会涉及到多线程技术。抢钱游戏可能会有多个玩家同时进行,这就需要并发处理。Java提供了Thread类...
2. `Producer.java` - 生产者的Java代码,展示了如何创建连接,建立Session,创建Producer,并发送消息到一个目的地。 3. `Consumer.java` - 消费者的Java代码,展示了如何建立连接,创建Session,创建Consumer,并...
aes加密算法实现行移位的verilog代码
行行重行行
在K3Cloud插件开发中,获取当前行号可以使用this.Model.GetEntryCurrentRowIndex("FEntity")方法,该方法需要传入单据体标识FEntity作为参数,返回当前行号int rowIndex。 2. 获取单据体集合 获取单据体集合可以...
在IT行业中,生成PDF文档是一项常见的任务,特别是在报告、合同或者技术文档的制作上。iText是一个强大的Java库,专门...在实际操作中,结合具体的代码示例(如压缩包中的TestDemo),可以更好地理解和应用这些技术。
1. 取出源代码文件中的所有行,并去除每行行尾多余的空格。 2. 统计每一种源代码类型关键词出现的次数。 3. 对所有的源代码类型进行一次筛选,筛选的条件是:如果文件后缀名与源代码类型不匹配,则关键词出现次数...
在这个示例中,我们使用了`java.util.Scanner`类来从标准输入流中读取数据。`Scanner`类提供了多种方法来处理各种类型的数据,如`nextInt()`用于读取整数。`hasNext()`方法用于检查是否还有更多的输入数据,如果存在...
这部分代码实现了对当前页码的处理,并计算出每页第一条记录在数据库中的位置,以便后续查询时能够准确地获取对应的数据。 ```java int n = 0; while (n !rs.isAfterLast()) { // 查询并显示数据 } ``` 这部分代码...
在文本文件每行行首添加字符!