TypeKindVisitor6 — 타입 종류에 따른 방문자

TypeKindVisitor6 — 타입 종류에 따른 방문자 (RELEASE_6)

타입을 순회할 때, 타입의 종류(kind) 에 따라 처리 로직을 나누고 싶은 경우가 있어요. TypeKindVisitor6은 타입의 종류에 기반한 방문 동작을 기본으로 제공하는 클래스예요. RELEASE_6 소스 버전에 맞는 기본 동작을 갖추고 있어요.

여러 종류가 될 수 있는 타입 Xyz(예: BYTE, SHORT, INT 등 기본형)의 visitXyz 메서드는 인자 타입의 실제 종류에 맞는 visitXyzAsKind 메서드로 위임해요. 그리고 visitXyzAsKind 메서드는 받은 인자를 defaultAction으로 넘겨주죠.

출처: Java API Reference

본문

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

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 패키지에 속해요.

더 알아보기 (Learn more)