获取当前执行代码的类、方法、行数信息

package cn.com.infcn.tool.utils;

/**
 * Class工具类
 * 
 * @author jijs
 * @version 1.0
 */
public class ClassUtils {

    /**
     * 获取调用的类名
     * 
     * @return String
     */
    public static String getClassName() {
        StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
        StackTraceElement e = stacktrace[2];
        String className = e.getClassName();
        return className;
    }

    /**
     * 获取调用的方法名
     * 
     * @return String
     */
    public static String getMethodName() {
        StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
        StackTraceElement e = stacktrace[2];
        String methodName = e.getMethodName();
        return methodName;
    }
    
    public static String getFileName() {
        StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
        StackTraceElement e = stacktrace[2];
        String methodName = e.getFileName();
        return methodName;
    }
    
    public static int getLineNumber() {
        StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
        StackTraceElement e = stacktrace[2];
        int line = e.getLineNumber();
        return line;
    }
    
    public static void main(String[] args) {
        System.out.println("当前运行的类:"+getClassName());
        System.out.println("当前执行的方法:"+getMethodName());
        System.out.println("当前文件名:"+getFileName());
        System.out.println("当前执行的行数:"+getLineNumber());
    }
}

执行结果

当前运行的类:cn.com.infcn.tool.utils.ClassUtils
当前执行的方法:main
当前文件名:ClassUtils.java
当前执行的行数:53

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android机器圈

SharedPreferences 存List集合,模拟数据库,随时存取

PS:SharedPreferences只要稍微学过一点就会用,他本身通过创建一个Editor对象,来存储提交,而editor可以存的格式为 ? 他里面可以存一...

3438
来自专栏everhad

使用通配符和泛型:完成父子类关系的List对象的类型匹配

泛型和通配符 使用泛型和通配符都可以让一个方法所表示的算法逻辑适应多种类型。 Java中具备继承关系的类A、B(A extends B)它们的集合List<A...

1797
来自专栏everhad

使用通配符和泛型:完成父子类关系的List对象的类型匹配

使用泛型和通配符都可以让一个方法所表示的算法逻辑适应多种类型。 Java中具备继承关系的类A、B(A extends B)它们的集合List<A>和List<...

730
来自专栏10km的专栏

java:bytes[]转long的三种方式

bytes[] 到数字类型的转换是个经常用到的代码,解决方式也不止一种,最近需要将bytes[]转为long,有机会深入了解了一下,此文做个总结。 java代码...

3457
来自专栏coding

浅析python中的元类类也是对象动态地创建类用type创建类 metaclass属性元类到底有什么用

在python中,一切皆是对象,就连生成对象的类,自身也是一个对象。既然类也是一个对象,那么类也可以被作为参数传递,也可以赋值给其他变量...

1233
来自专栏爱撒谎的男孩

Mybatis之多表查询

8388
来自专栏kalifaの日々

Unity 3D学习笔记之C#知识储备

1583
来自专栏封碎

Android开发减少方法数的建议 博客分类: Android小技巧 方法数android

     现在的Android应用越来越庞大,开发者越来越能感受到方法数限制带来的影响。这里简单讲几个减少方法数的小建议。

1005
来自专栏女程序员的日常

STL的使用和背后数据结构

STL(Standard Template Library即,模板库)包括六个部分:容器(containers)、迭代器(iterators)、空间配置器(al...

2171
来自专栏海天一树

小朋友学C++(5):构造函数

构造函数,作用是完成对象的初始化工作。 可类比于:int a = 1;这里是给变量a赋初值。 构造函数是一种特殊的函数,首先构造函数名与类名是完全一致的,其次构...

2657

扫码关注云+社区