ForwardingJavaFileObject — Java 파일 객체 호출을 위임하는 래퍼 클래스
ForwardingJavaFileObject — Java 파일 객체 호출을 위임하는 래퍼 클래스
JavaFileObject 구현에 기능을 더하거나 일부 동작을 바꾸고 싶을 때, ForwardingJavaFileObject를 쓰면 편해요. 이 클래스는 주어진 자바 파일 객체로의 호출을 그대로 위임하는 래퍼예요. 하위 클래스에서 필요한 메서드만 오버라이드해서 쓸 수 있어요.
ForwardingFileObject의 자바 파일 객체 특화 버전이라고 보면 돼요.
본문
클래스 선언은 다음과 같아요.
public class ForwardingJavaFileObject<F extends JavaFileObject>
extends ForwardingFileObject<F>
implements JavaFileObject
타입 파라미터 F는 위임 대상 JavaFileObject의 타입이에요.
- 생성자는
ForwardingJavaFileObject(F fileObject)로 위임 대상을 받아요. JavaFileObject가 요구하는 메서드(getKind,isNameCompatible,getNestingKind,getAccessLevel등)는 기본적으로 delegate로 위임돼요.- 하위 클래스는 필요한 메서드만 오버라이드해 확장할 수 있고, 추가 필드·메서드도 정의할 수 있어요.
이 클래스의 문서에서 말하는 "이 파일 객체(this file object)"는 특별히 언급하지 않는 한 간접적으로 위임 대상 파일 객체를 가리켜요. javax.tools 패키지에 속해요.