TypeKindVisitor6 — 타입 종류에 따른 방문자
TypeKindVisitor6 — 타입 종류에 따른 방문자 (RELEASE_6)
타입을 순회할 때, 타입의 종류(kind) 에 따라 처리 로직을 나누고 싶은 경우가 있어요. TypeKindVisitor6은 타입의 종류에 기반한 방문 동작을 기본으로 제공하는 클래스예요. RELEASE_6 소스 버전에 맞는 기본 동작을 갖추고 있어요.
여러 종류가 될 수 있는 타입 Xyz(예: BYTE, SHORT, INT 등 기본형)의 visitXyz 메서드는 인자 타입의 실제 종류에 맞는 visitXyzAsKind 메서드로 위임해요. 그리고 visitXyzAsKind 메서드는 받은 인자를 defaultAction으로 넘겨주죠.
본문
클래스 선언은 다음과 같아요.
public class TypeKindVisitor6<R,P>
extends SimpleTypeVisitor6<R,P>
R은 방문 결과의 반환 타입, P는 추가 파라미터 타입이에요.
이 클래스는 RELEASE_6 및 그 이전의 언어 구조를 다루는 타입 종류별 방문 메서드를 제공해요. 타입 종류에 따라 다음과 같이 나뉘어요.
- 기본형 타입:
visitPrimitiveAsBoolean,visitPrimitiveAsByte,visitPrimitiveAsShort,visitPrimitiveAsInt,visitPrimitiveAsLong,visitPrimitiveAsChar,visitPrimitiveAsFloat,visitPrimitiveAsDouble. - 기타:
visitArray,visitDeclared,visitError,visitTypeVariable,visitWildcard,visitExecutable,visitNoType등.
기본 동작은 defaultAction 호출이며, 관심 있는 타입 종류만 오버라이드해서 쓰면 돼요. RELEASE_6 기준이라 자바 7 이후의 타입 종류를 만나면 기본적으로 다른 처리로 빠질 수 있어요. 최신 버전을 대상으로 하면 TypeKindVisitor7/8/9/14를 쓰는 게 좋아요. javax.lang.model.util 패키지에 속해요.