리플렉션

man soup·2020년 12월 19일
0

자바 공부

목록 보기
7/7

리플렉션이란?

jvm에서 동작하는 어플리케이션의 런타임 동작을 조사하거나 수정할때 프로그램이 사용하는 것

Classes

모든 객체타입에 대해 JVM은 클래스 로딩 후 힙 영역에 java.lang.Class타입의 immutable 인스턴스를 저장한다.
java.lang.Class는 타입 정보와 맴버들의 정보를 포함한 객체의 런타임 프로퍼티를 조사할 수 있는 메소드를 제공한다.
새 클래스들과 객체들을 생성할 수 있는 기능또한 제공
모든 리플렉션 api들의 엔트리 포인트

Retrieving Class Objects

모든 리플렉션 연산의 엔트리 포인트는 java.lang.Class 이다.
java.lang.reflect 패키지에 존재하는 모든 클래스들은 퍼블릭 생성자가 존재하지 않는다.
이 클래스들을 얻기 위해선 java.lang.Class의 적절한 메소드를 호출해야한다.
코드가 객체에 접근권한이 있는지, 클래스의 이름을 알고있는지, java.lang.Class 객체가 이미 존재하는지에 따라 Class를 얻는 방법이 달라진다.

Annotation & Reflection

어노테이션과 리플렉션을 같이 사용하는 경우 :
DI 프레임워크에 사용됨 ( @autowired )

출처 : https://docs.oracle.com/javase/tutorial/reflect/index.html
https://www.inflearn.com/course/the-java-code-manipulation/dashboard

profile
안녕하세요

0개의 댓글