본문 바로가기

dev/자바

Java Reflection

자바에 Reflection이라는 API를 지원하는데

 

인스턴스의 구체적인 클래스 타입을 알지 못해도 해당 인스턴스 클래스에 접근할 수 있게 하는 API입니다.

 

예제 TmpObj 클래스

 

예제 Reflection 코드

 

예제 코드를 보면

 

TmpObj 클래스를 생성한 다음 Object 클래스로 받고 getNum 메소드를 호출합니다.(9~12라인)

 

메소드에 파라미터를 전달해야 하는 경우 getMethod에 파라미터 타입을 입력하고 호출합니다.(14~16라인)

 

파라미터가 2개 이상이면 getMethod에 파라미터 타입을 추가하면 됩니다.

예시) getMethod(int.class, String.class, Double.class)

 

getField를 통해서도 필드에 접근할 수 있습니다.(18~20라인)

 

대신에 접근제한자가 public에 한해서만 가능합니다.

 

예제 TmpObj 클래스

 

예제 Reflection 코드

 

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