본문 바로가기

Android

[Java] 현재 수행중인 메소드의 이름을 얻는 방법

아래와 같이 getEnclosingMethod() 의 getName()을 호출하면 현재 수행중인 메소드의 이름을 얻을 수 있음.



String name = new Object() {}.getClass().getEnclosingMethod().getName();




로그를 출력할 때 유용하게 이용하게 있긴 하지만, 오버헤드가 장난 아니기 때문에 실제 개발용으로는 비추.

(안드로이드의 경우) 소스의 내용을 파악할 때 메소드마다 아래와 같이 한 줄씩 넣어주면 좋음.



Log.d("MyTAG", new Object() {}.getClass().getEnclosingMethod().getName());




단, 생성자에서는 이 코드를 호출할 수 없음! getEnclosingMethod 가 Null 이라 getEnclosingConstructor를 호출해야 생성자를 얻을 수 있음.



Log.d("MyTAG", new Object() {}.getClass().getEnclosingConstructor().getName());