282 words
1 minute
[Java]Reflection
Overview
- 기본적인 동작방식은 Java에서 Class 객체를 사용해 클래스의 메타데이터를 읽고, 해당 클래스의 필드, 메소드, 생성자 등을 동적으로 접근하고 조작할 수 있는 기능을 제공하는 것에 착안한다.
- 클래스 정보를 런타임에 알 수 있다는 것은 클래스 객체만으로 본 클래스를 인스턴스화하거나, 메소드 호출, 필드 접근 등을 동적으로 수행할 수 있다는 것을 의미한다.
- 리플렉션은 보통 프레임워크,라이브러리 등에서 사용된다. 이는 사용자가 어떤 클래스를 구성할 지 모르는 상황에서 이런 사용자 클래스들을 기존의 기능과 동적으로 연결시켜 사용하기 위함이다.
Concept
- Reflection : 자바에서 클래스의 메타데이터를 런타임에 읽고, 해당 클래스의 필드, 메소드, 생성자 등을 동적으로 접근하고 조작할 수 있는 기능을 제공하는 것.