
ReflectionGenerator::getExecutingLine 메서드는 실제로 현재 실행 중인 라인 번호를 반환하지 않습니다. 대신, 이전에 실행한 라인 번호를 반환합니다.
이 메서드는 컴파일 타임에 결정된 라인 번호를 반환하기 때문입니다. 컴파일 타임에 결정된 라인 번호는 실행 중인 라인 번호와 다를 수 있습니다.
현재 실행 중인 라인 번호를 정확하게 얻으려면, 스택 트레이스나 디버거를 사용하는 것이 좋습니다. 스택 트레이스나 디버거를 사용하면 현재 실행 중인 함수와 라인 번호를 확인할 수 있습니다.
또한, Java 8 이상에서 사용할 수 있는 Thread.currentThread().getStackTrace() 메서드를 사용할 수도 있습니다. 이 메서드는 현재 실행 중인 함수와 라인 번호를 반환합니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
java
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
int executingLine = stackTrace[1].getLineNumber();
이 코드는 현재 실행 중인 함수의 라인 번호를 반환합니다.
하지만, 이 방법은 스택 오버플로를 발생시킬 수 있으므로, 주의해서 사용해야 합니다.
2025-06-09 05:08