標籤:
擷取以下擷取方法所在函數的相關資訊
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:
這是擷取方法
1 public class NameProxy { 2 3 public static void nowMethod() { 4 String clazz = Thread.currentThread().getStackTrace()[1].getClassName(); 5 String method = Thread.currentThread().getStackTrace()[1] 6 .getMethodName(); 7 System.out.println("class name: " + clazz + " Method Name " + method); 8 } 9 10 public static void parentMethod() {11 String clazz = Thread.currentThread().getStackTrace()[2].getClassName();12 String method = Thread.currentThread().getStackTrace()[2]13 .getMethodName();14 System.out.println("class name: " + clazz + " Method Name " + method);15 }16 17 }
Test:
1 public class MethodName {2 3 @Test4 public void showMethodName() {5 LogProxyName.nowMethod();6 LogProxyName.parentMethod();7 }8 9 }
顯示結果:
1 class name: com.XXX.name.NameProxy Method Name nowMethod2 class name: com.XXX.name.MethodName Method Name showMethodName
JAVA 擷取類名,函數名