리플렉션으로 타입 조사하기 예제가 실행되는 순서
Class 메타데이터 획득에서 시작해 invoke 결과와 반사 예외를 명시적으로 처리까지 값과 책임이 이동한다.
-
1
Class 메타데이터 획득
Type.class, object.getClass, Class.forName으로 얻는 경로가 각각 다릅니다.
-
2
이름·매개변수로 공개 메서드 선택
getMethods는 상속된 public 메서드를 포함하고 getDeclaredMethods는 현재 클래스에 선언된 접근 수준 전체를 봅니다.
-
3
invoke 결과와 반사 예외를 명시적으로 처리
이름만으로 메서드를 고르면 오버로드를 구분하지 못합니다.
실행 순서 getDeclaredMethods는 private secret까지 찾지만 getMethod는 공개 greet만 이름과 매개변수 타입으로 조회합니다.