Choose a default theme

You can change your theme from the menu

Java 리플렉션

Java 리플렉션은 실행 중 클래스와 객체의 필드·메서드·생성자 정보를 조사하고 허용된 동작을 수행하는 기능이다.

원리

Class와 java.lang.reflect의 API로 로딩된 타입 정보를 얻는다. 프레임워크나 디버거가 컴파일 시 구체적인 클래스를 모르는 상황에 활용할 수 있다.

예시

직렬화 도구가 객체의 필드를 조사하거나 설정에 지정된 클래스의 생성자를 찾아 인스턴스를 만드는 데 사용할 수 있다.

주의할 점

캡슐화와 모듈 접근 제한을 무조건 넘을 수 있는 기능은 아니다. 정적 타입 검사가 줄어드는 부분과 실행 비용, 예외 처리를 고려하고 내부 구현에 과도하게 의존하지 않는다.

참고 자료