이펙티브 자바/9장 일반적인 프로그래밍 원칙

아이템 65 리플렉션보다는 인터페이스를 사용하라

말랑공룡 2023. 12. 14. 15:58

 

- 리플렉션 기능을 이용하면 프로그램에서 임의의 클래스에 접근할 수 있다.

- 그렇게 접근한 클래스의 생성자, 메서드, 필드의 인스턴스를 가져올 수 있고 조작할 수 있다.

 

<단점>

  • 컴파일타임 타입 검사가 주는 이점을 하나도 누릴 수 없다.
  • 코드가 지저분하고 장황해진다.
  • 성능이 떨어진다.

 

<사용하기 적합한 상황>

  • 런타임에 존재하지 않을 수도 있는 다른 클래스, 메서드, 필드와의 의존성을 관리할 때 적합하다.
  • 버전이 여러 개 존재하는 외부 패키지를 다룰 때 유용하다. 가동할 수 있는 최소한의 환경, 즉 주로 가장 오래된 버전만을 지원하도록 컴파일한 후, 이후 버전의 클래스와 메서드 등은 리플렉션으로 접근하는 방식이다.