SimpleTreeVisitor

SimpleTreeVisitor (간단한 소스 트리 방문자)

소스 코드 추상 구문 트리(com.sun.source.tree)를 위한 간단한 방문자입니다. TreeVisitor 인터페이스의 모든 visitXXX 메서드에 기본 동작을 제공해서, 특정 노드 종류만 골라 처리할 수 있게 해 줍니다.

출처: Java API Reference

본문

TreeVisitor<R,P>를 구현한 편의 클래스로, 모든 방문 메서드의 기본 구현이 defaultAction을 호출하고 defaultActionDEFAULT_VALUE를 반환합니다. 즉 대부분의 노드를 무시하면서 원하는 몇 가지 노드에만 반응하는 방문자를 쉽게 만들 수 있어요.

생성자

  • SimpleTreeVisitor()DEFAULT_VALUEnull인 방문자를 만듭니다.
  • SimpleTreeVisitor(R defaultValue) — 지정한 기본 값을 사용하는 방문자를 만듭니다.

핵심 메서드

  • visit(Tree node, P p) — 노드의 타입에 맞는 방문 메서드를 호출해 실행하는 디스패치 입구입니다. 마지막으로 호출된 방문 메서드의 결과를 반환하고, 호출된 것이 없으면 null이에요.

  • visit(Iterable<? extends Tree> nodes, P p) — 노드들의 연속 각각에 대해 알맞은 방문 메서드를 호출합니다.

  • defaultAction(Tree node, P p) — 오버라이드하지 않은 모든 visitXXX가 사용하는 기본 동작으로, DEFAULT_VALUE를 반환합니다.

  • DEFAULT_VALUE 필드 — 기본 동작이 반환하는 값입니다.

  • visitXXX 메서드 — 소스 코드의 거의 모든 구조에 대응합니다. visitCompilationUnit, visitClass, visitMethod, visitVariable, visitIf, visitForLoop, visitWhileLoop, visitSwitch, visitReturn, visitThrow, visitTry, visitMethodInvocation, visitNewClass, visitLambdaExpression, visitAssignment, visitBinary, visitConditionalExpression, visitIdentifier, visitLiteral, visitTypeCast, visitMemberSelect, visitWildcard, visitAnnotation, visitModule, visitYield 등 언어 요소 전반을 커버하며, 기본적으로 defaultAction을 호출합니다.

일부 메서드는 프리뷰 API에 속하는데, 예를 들어 visitStringTemplate, visitAnyPattern, visitDeconstructionPattern, visitPatternCaseLabel 등은 프리뷰 기능이 활성화된 경우에만 사용할 수 있어요.

이 점만 빼면 기본적으로 거의 모든 소스 구조를 커버하는 방문자라서, 직접 방문자를 처음부터 만들 필요 없이 필요한 메서드만 골라 쓰기 좋아요. visitOther는 언어가 진화하면서 Tree 계층에 새 노드 종류가 추가될 때 발생하는 알 수 없는 노드를 처리해 줍니다.

더 알아보기

Java 공식 API