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

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 条评论
登录 后参与评论

相关文章

来自专栏java沉淀

定时器Timer(迭代一)测试篇

1205
来自专栏白驹过隙

ACE - ACE_Task源码剖析及线程池实现

原文出自http://www.cnblogs.com/binchen-china,禁止转载。

482
来自专栏码匠的流水账

线程池工作窃取实例

ForkJoinPool主要用到的是双端队列,不过这里我们粗糙的实现的话,也可以不用到deque。

771
来自专栏白驹过隙

ACE - Reactor模式源码剖析及具体实现(大量源码慎入)

37116
来自专栏用户画像

Java HttpClient两种数据传输方式

二、server端的数据接收方式,使用@RequestBody接收二进制字节流,使用@RequestParam接收参数列表

911
来自专栏码匠的流水账

聊聊sentinel的DataSource

sentinel-datasource-extension-0.1.1-sources.jar!/com/alibaba/csp/sentinel/dataso...

401
来自专栏用户3030674的专栏

java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源

/** * 实用工具类来获取服务器资源 * * get方法传送数据 * * 1、通过path设定传送方式 * 2、创建客户端 *...

834
来自专栏JAVA技术站

JAVA流之管道流PipedInputStream,PipedOutputStream

管道流主要作用是可以连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedRead...

512
来自专栏Google Dart

AOP切面编程三 原

522
来自专栏xingoo, 一个梦想做发明家的程序员

漫谈Java IO之 NIO那些事儿

前面一篇中已经介绍了基本IO的使用以及最简单的阻塞服务器的例子,本篇就来介绍下NIO的相关内容,前面的分享可以参考目录: 网络IO的基本知识与概念 普通I...

3805

扫码关注云+社区