현재 코드라인에서 지금까지 호출된 함수의 정보를 확인하기 위한 방법이다.


예를 들어,


Class A{


public static void main(String args...){

new B();

}

}


Class B{


public B(){

// 현재 라인에서 현재까지 호출된 정보를 확인하고 싶은 경우 사용

}


}




StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();


를 이용하면 현재 호출까지 되었던 정보들을 스택 구조로 획득할 수 있다.


StackTraceElement에서 획득할 수 있는 대표적인 정보로는


for (StackTraceElement stackTraceElement : stackTrace) {
    stackTraceElement.getClassName();
    stackTraceElement.getFileName();
    stackTraceElement.getLineNumber();
    stackTraceElement.getMethodName();

}


대부분 함수이름만으로 어떠한 정보를 획득할 수 있는지 이해할 수 있다.


다만, getClassName()의 경우 fully qualified name of the Class가 리턴 된다.

(예시 : com.test 패키지 아래에 Temp.java 파일의 경우, com.test.Temp 라는 정보가 리턴된다.)