자바 인쇄 현재 방법 명 예시 공유

1225 단어
C 와 C++ 에서 현재 함수 이름 을 이렇게 인쇄 할 수 있 습 니 다.
 
  
printf("%s",__func__);

그러나 자바 에 서 는 이 주장 이 없습니다. 모든 것 이 대상 입 니 다. 특정한 대상 에서 가 져 와 야 합 니 다. 두 가지 방식 으로 나 눌 수 있 습 니 다.
첫 번 째: Thread 클래스 를 통 해 얻 을 수 있 습 니 다.
 
  
System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());
System.out.println(Thread.currentThread().getStackTrace()[1].getClassName());

두 번 째: Throwable 클래스 를 통 해 얻 을 수 있 습 니 다. 두 번 째 방법 은 확장 이 가능 합 니 다. throwable 의 하위 클래스 만 있 으 면 기능 을 실현 할 수 있 습 니 다.
 
  
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
System.out.println(new Throwable().getStackTrace()[0].getClassName());

이 두 가지 방법 을 통 해 현재 방법 명 과 소재 하 는 유형 명 을 인쇄 할 수 있 지만 한 가지 단점 은 다음 과 같은 index 입 니 다.
 
  
getStackTrace()[index]

어떤 값 을 취 하 는 지, 0 또는 1 또는 다른 수 치 를 취 하 는 지, 여기 서 두 가지 방식 의 index 는 각각 0 과 1 로 쓰 여 있 습 니 다. 이것 은 고정 적 으로 변 하지 않 는 것 이 아니 라 스스로 테스트 를 통 해 확인 해 야 한 다 는 것 을 일 깨 워 주 는 것 입 니 다.JK 버 전이 다 르 면 수치 가 다 를 수 있다 고 합 니 다.직접 테스트 해 본 적은 없어 요.
내 테스트 용 JDK 버 전: 자바 version "1.7.0 17"

좋은 웹페이지 즐겨찾기