ForwardingJavaFileManager — 파일 매니저 호출을 위임하는 래퍼 클래스

ForwardingJavaFileManager — 파일 매니저 호출을 위임하는 래퍼 클래스

파일 매니저(JavaFileManager)의 동작을 확장하고 싶을 때, 전체를 다시 구현하는 대신 ForwardingJavaFileManager를 상속받으면 편해요. 이 클래스는 주어진 파일 매니저로의 호출을 그대로 위임하는 래퍼예요. 하위 클래스에서 필요한 메서드만 오버라이드해서 쓸 수 있어요.

컴파일러에 커스텀 파일 매니저를 끼워 넣을 때 가장 흔히 쓰는 기반 클래스예요.

출처: Java API Reference

본문

클래스 선언은 다음과 같아요.

public class ForwardingJavaFileManager<M extends JavaFileManager>
extends Object
implements JavaFileManager

타입 파라미터 M은 위임 대상 JavaFileManager의 타입이에요.

  • 생성자는 ForwardingJavaFileManager(M fileManager)로 위임 대상을 받아요.
  • JavaFileManager가 정의한 모든 메서드(파일 위치 접근, 파일 객체 생성·조회, 플래시·클로즈 등)는 기본적으로 delegate로 위임돼요.
  • 하위 클래스는 필요한 메서드만 오버라이드해 동작을 확장할 수 있고, 추가 필드·메서드도 정의할 수 있어요.

이 클래스의 문서에서 말하는 "이 파일 매니저(this file manager)"는 특별히 언급하지 않는 한 간접적으로 위임 대상 파일 매니저를 가리켜요. 예를 들어 특정 파일 확장자만 가로채고 싶다면 관련 메서드만 오버라이드하면 돼요. javax.tools 패키지에 속하며, 컴파일 커스터마이징의 핵심 기반이에요.

더 알아보기 (Learn more)