자바에 Reflection이라는 API를 지원하는데
인스턴스의 구체적인 클래스 타입을 알지 못해도 해당 인스턴스 클래스에 접근할 수 있게 하는 API입니다.
예제 코드를 보면
TmpObj 클래스를 생성한 다음 Object 클래스로 받고 getNum 메소드를 호출합니다.(9~12라인)
메소드에 파라미터를 전달해야 하는 경우 getMethod에 파라미터 타입을 입력하고 호출합니다.(14~16라인)
파라미터가 2개 이상이면 getMethod에 파라미터 타입을 추가하면 됩니다.
예시) getMethod(int.class, String.class, Double.class)
getField를 통해서도 필드에 접근할 수 있습니다.(18~20라인)
대신에 접근제한자가 public에 한해서만 가능합니다.
Spring DI에서 사용되는 개념으로 알아두면 좋을 것 같습니다.
'dev > 자바' 카테고리의 다른 글
Java 파일 경로 조회 (0) | 2023.05.10 |
---|---|
hashCode equals (0) | 2023.02.16 |
Custom Exception (0) | 2022.12.13 |
Java 시간 계산 (0) | 2022.11.28 |
Java type casting (0) | 2022.11.28 |