Professional Documents
Culture Documents
Reflection
Reflection
강임남
1 Reflection 이란 ?
2 언제 Reflection 이 필요할까 ?
3 Java 바탕지식
4 ReflectionAPI 와 예시
5 정리
Reflect:
1. 비추다 . 2. 반사하다 . 3. 나타내다
Reflection
모르는 대상을 사용해야할 때 ,
대상에 대해 정보를 알려주고 사용할 수 있도록 도와주는 기술
언제 ?
대상인 Class Type 을
모르는 채로 객체를 생성해야하는 경우가 언제일까 ?
어디에서 ?
프레임워크나 라이브러리 :
Spring Annotation, Spring Dependency Injection,
Hibernate 의 default constructor,
JUnit, jackson library 등
기타 :
정적 분석 툴 , IDE 의 java code 자동 완성 기능 등
- 실체 : 사용자가 작성한
클래스를 뜻함
- 매개체 ( 물 또는 거울 ):
java.lang.Class Class Type 인
Class 에 대입 (java.lang.reflect)
누가 언제 어디에서
프레임 워크 런타임 JVM
무엇을 왜 어떻게
Method Area 에 Code 작성시점에 Class Type 인
있는 Class 정보 Class
Class 정보 알 수 없음
Reflection API
(java.lang.reflect)
- Class(Interface, Enum)
- Constructor
- Method
- Field
...
Reflection API
상세 설명
- getClasses, getField …
- getXX: 해당 XX( 클래스 , 필드 ,
메소드 등 ) 이나 super 클래스에 선언
( 또는 구현 ) 되어 있고 public 접근
제한자를 가진 대상
- getDeclaredClasses …
- getDeclaredXX: 해당 XX( 클래스 ,
필드 , 메소드 등 ) 선언 ( 또는 구현 )
만 되어 있으면 됨 . 접근 제어자와 상관
없음 .
성능 확인
- 0.0018845 VS 0.027349
- 14 ~ 15 배 차이
Reflection 정리 Reflection 정리