`

JAVA中获取当前运行的类名,方法名,行数

    博客分类:
  • JAVA
阅读更多
public static String getTraceInfo(){
		StringBuffer sb = new StringBuffer(); 
		
		StackTraceElement[] stacks = new Throwable().getStackTrace();
		int stacksLen = stacks.length;
		sb.append("class: " ).append(stacks[1].getClassName()).append("; method: ").append(stacks[1].getMethodName()).append("; number: ").append(stacks[1].getLineNumber());
		
		return sb.toString();
	}

 

最终是通过StackTraceElement[] stacks = new Throwable().getStackTrace();来实现的

没有研究底层实现, 也不没去看Log4j等日志框架中是不是也是用此方式获取相关信息的, 待有时间再研究

5
1
分享到:
评论
1 楼 liyueling 2012-03-20  
有用

相关推荐

    java父子资料(答案)

    - **知识点**: 如果一个 Java Applet 源程序文件中只定义了一个类(例如 `MyApplet`),那么该类必须继承自 `Applet` 类,并且源文件名应与类名一致,即 `MyApplet.java`。 **5. Java Application 的编译与运行** -...

    Java面试题以及答案整理.pdf

    反射机制允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作,提供了对Java对象模型的动态访问能力。 这些只是Java面试中可能会遇到的一部分问题,涵盖范围广泛,从基础语法到高级特性,深入...

    java 2实用教程第四版(习题解答).doc

    - 在 Java 中,可以通过数组名加上 `.length` 来获取数组的长度。例如,一维数组 `int[] array` 的长度可通过 `array.length` 获取;同样地,二维数组 `int[][] matrix` 的行数也可以通过 `matrix.length` 获取。 ...

    java笔记心得

    首先导入 `java.util.Scanner` 包,然后实例化 `Scanner` 对象,并使用 `nextInt()` 方法获取整数输入。 #### GUI 窗口绘制 - **创建 JFrame**:`JFrame frame = new JFrame();` 创建一个新的窗口。 - **设置关闭...

    2017级java期末考试1

    在Java中,`java.net.Socket`类用于实现TCP连接,而`java.net.DatagramSocket`用于处理UDP通信。 4. **Unicode编码**: - Unicode码通常存储在`char`数组中,每个字符占两个字节。 5. **二维数组**: - 在Java中...

    Java面试题大全--比较详细

    重写(Override)发生在子类中,当子类提供与父类完全相同的方法签名(包括返回类型和方法名)的方法时。 10. **Final类**:Final类不能被其他类继承,保证了类的封闭性。 11. **继承执行顺序**:在继承关系中,...

    JAVA面试题

    - **重载(Overload)**:在同一类中,方法名相同但参数列表不同的两个或多个方法。 - **重写(Override)**:在子类中重新定义父类的方法。 - **重载的方法**:可以改变返回值的类型,但方法签名必须不同。 #### 10. ...

    excel工具,利用反射

    反射(Reflection)是Java语言的一个重要特性,它允许程序在运行时检查类的信息(如类名、字段、方法等),并能够动态地创建对象和调用方法。在本例中,反射被用来读取对象的字段,并将Excel表格中的数据填充到这些...

    Java反射之Call stack introspection详解

    Java反射之Call Stack Introspection是Java编程中的一个重要特性,它允许程序在运行时检查自身的方法调用堆栈。在Java中,每个线程都有自己的调用栈,用于存储方法调用的信息。栈帧(StackTraceElement)是这个调用...

    java 俄罗斯方块代码

    游戏的核心逻辑主要体现在`gameOpBoard`类中,虽然代码片段中没有给出具体实现,但从类名可以推测它应该负责处理方块的移动、旋转、碰撞检测以及行的消除等功能。此外,`showNextPiece`类负责展示下一个方块的预览,...

    log4j的基本使用方法

    在实际的企业应用中,Log4j 被广泛应用于各种 Java 应用和服务中,用于收集和分析运行时的信息。通过合理的配置,Log4j 可以帮助开发者更好地监控和调试系统,提高系统的稳定性和性能。 例如,在一个分布式系统中,...

    jdbc学习基础笔记

    1. **注册驱动**:首先,需要将对应的JDBC驱动类加载到JVM中,这通常通过调用`Class.forName(driver)`来实现,其中`driver`是数据库厂商提供的驱动类名。 2. **获取连接**:在注册了驱动之后,可以通过`...

    Idea快捷键.docx

    - **Shift+F1**:在浏览器中打开当前编辑器光标位置处使用的类或方法的 Java 文档。 #### 三、调试与编译 - **Ctrl+F2**:停止当前正在运行的程序或调试进程。 - **Alt+Shift+F9**:选择 Debug 模式启动程序。 - *...

    Web编程Jsp&Servlet技术面试题.doc

    - 通过SQL查询来定位并获取当前页的数据,例如SQL Server的分页查询语法。 - 请求参数用于传递当前页数,以便计算查询的起始位置。 理解并熟练掌握这些知识点对于面试和实际开发都是非常关键的,它们构成了Web...

    2021-2022计算机二级等级考试试题及答案No.35.docx

    - **解析**:Java中类的声明需要包含关键字 `public` 或其他访问修饰符,以及类名和大括号。因此,正确答案为 **D. public class Car{…}**。 #### 17. DOS命令 - **题目描述**:下列DOS命令中哪个是错误的? - **...

    android上一个可追踪代码具体到函数某行的日志类

    `getLineNumber()`通常通过Java的`StackTraceElement`类来实现,它可以获取当前线程的堆栈跟踪信息,从中提取出所需的方法和行号。 6. **日志标签**: 类中定义了一个常量`TAG`,作为所有日志输出的标签。这样可以...

    2021-2022计算机二级等级考试试题及答案No.12333.docx

    - **文件属性查看**:在Windows操作系统中,右键点击文件图标选择“属性”时,并不能直接查看到文件的字数和行数信息。这些信息通常需要借助专门的文字处理软件或其他工具来获取。 ### 3. Java 日期操作类 - **...

    2021-2022计算机二级等级考试试题及答案No.11773.docx

    - **知识点概述**:在Java中,可以通过Runtime类获取系统的运行时环境。 - **知识点详解**: - **getRuntime()方法**:返回当前Java虚拟机的Runtime实例。 ### 16. 计算机软件的定义 - **知识点概述**:计算机...

Global site tag (gtag.js) - Google Analytics