- 리플렉션 기능을 이용하면 프로그램에서 임의의 클래스에 접근할 수 있다.
- 그렇게 접근한 클래스의 생성자, 메서드, 필드의 인스턴스를 가져올 수 있고 조작할 수 있다.
<단점>
- 컴파일타임 타입 검사가 주는 이점을 하나도 누릴 수 없다.
- 코드가 지저분하고 장황해진다.
- 성능이 떨어진다.
<사용하기 적합한 상황>
- 런타임에 존재하지 않을 수도 있는 다른 클래스, 메서드, 필드와의 의존성을 관리할 때 적합하다.
- 버전이 여러 개 존재하는 외부 패키지를 다룰 때 유용하다. 가동할 수 있는 최소한의 환경, 즉 주로 가장 오래된 버전만을 지원하도록 컴파일한 후, 이후 버전의 클래스와 메서드 등은 리플렉션으로 접근하는 방식이다.
'이펙티브 자바 > 9장 일반적인 프로그래밍 원칙' 카테고리의 다른 글
아이템 67 최적화는 신중히 하라 (0) | 2023.12.14 |
---|---|
아이템 66 네이티브 메서드는 신중히 사용하라 (0) | 2023.12.14 |
아이템 64 객체는 인터페이스를 사용해 참조하라 (0) | 2023.12.14 |
아이템 63 문자열 연결은 느리니 주의하라 (0) | 2023.12.13 |
아이템 62 다른 타입이 적절하다면 문자열 사용을 피하라 (0) | 2023.12.13 |