JAVA 获取类名,函数名

获取执行方法所在函数的相关信息

1.获取当前函数名:

Thread.currentThread().getStackTrace()[1].getMethodName();

2.获取当前类名:

Thread.currentThread().getStackTrace()[1].getClassName();

3.获取当前类的文件名:

Thread.currentThread().getStackTrace()[1].getFileName();

获取调用方法的所在函数的相关信息

1.获取当前函数名:

Thread.currentThread().getStackTrace()[2].getMethodName();

2.获取当前类名:

Thread.currentThread().getStackTrace()[2].getClassName();

3.获取当前类的文件名:

Thread.currentThread().getStackTrace()[2].getFileName();

Demo:

这是获取方法

public class NameProxy {

    public static void nowMethod() {
        String clazz = Thread.currentThread().getStackTrace()[1].getClassName();
        String method = Thread.currentThread().getStackTrace()[1].getMethodName();
        System.out.println("class name: " + clazz + " Method Name " + method);
    }

    public static void parentMethod() {
        String clazz = Thread.currentThread().getStackTrace()[2].getClassName();
        String method = Thread.currentThread().getStackTrace()[2].getMethodName();
        System.out.println("class name: " + clazz + " Method Name " + method);
    }

}

Test:

public class MethodName {

    @Test
    public void showMethodName() {
        LogProxyName.nowMethod();
        LogProxyName.parentMethod();
    }

}

显示结果:

class name: com.XXX.name.NameProxy Method Name nowMethod
class name: com.XXX.name.MethodName Method Name showMethodName
posted @ 2015-05-15 09:45  风真天  阅读(1474)  评论(0编辑  收藏  举报