AbstractTypeVisitor8 — 타입 방문자의 뼈대 클래스
AbstractTypeVisitor8 — 타입 방문자의 뼈대 클래스 (RELEASE_8)
타입을 순회하면서 방문 메서드를 호출하는 TypeVisitor의 기본 구현이 필요할 때, 매번 전부 작성하기보다 뼈대 클래스를 상속받는 편이 훨씬 깔끔해요. AbstractTypeVisitor8은 RELEASE_8 소스 버전에 맞는 기본 동작을 갖춘 뼈대 타입 방문자예요. 자바 8까지의 언어 구조에 해당하는 타입들을 기본적으로 처리할 수 있어요.
AbstractTypeVisitor7의 후속 버전으로, 자바 8에서 추가된 언어/타입 구조까지 커버하는 것이 차이점이에요. 관심 있는 타입에 대한 방문 메서드만 오버라이드하면 나머지는 기본 처리를 따르게 되죠.
본문
클래스 선언은 다음과 같아요. R은 방문 결과의 반환 타입, P는 방문 시 추가로 넘기는 파라미터 타입이에요.
public abstract class AbstractTypeVisitor8<R,P>
extends Object
implements TypeVisitor<R,P>
R— 방문 메서드의 반환 타입. 값을 돌려줄 필요가 없으면Void를 쓰면 돼요.P— 방문 메서드에 전달하는 추가 파라미터 타입.
이 클래스는 RELEASE_8 및 그 이전의 언어 구조에 해당하는 타입들의 방문 메서드를 구현해요. 자바 8 이후에 도입된 타입 형태에 대해서는 visitUnknown으로 처리해요. 때문에 더 새로운 자바 버전의 타입을 다뤄야 한다면 AbstractTypeVisitor9(RELEASE_9~14)나 그 이후 버전을 쓰는 게 맞아요.
방문자 패턴 특성상 이 클래스는 그대로 인스턴스화해서 쓰기보다, 하위 클래스에서 필요한 메서드만 골라 오버라이드해서 쓰는 것이 일반적인 용법이에요. 기본 동작이 이미 잘 갖춰져 있으니, 관심 없는 타입은 건드리지 않아도 돼요.
javax.lang.model.util 패키지에 속하며, 소스 버전에 따라 AbstractTypeVisitor6부터 AbstractTypeVisitor14까지 시리즈로 존재해요. 기준 버전만 다르고 쓰임새는 같아요.