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