YieldTree

YieldTree (yield 문 트리 노드)

switch 표현식에서 값을 돌려주는 yield 문 하나를 나타내는 트리 노드입니다. 자바 13부터 도입된 yieldswitch 표현식의 각 분기에서 반환할 값을 만들어 내는 역할을 해요.

출처: Java API Reference

본문

전통적인 switch 문은 값을 만들지 않고 각 분기에서 실행할 동작만 골랐다면, switch 표현식은 전체가 하나의 값으로 평가됩니다. 이때 분기 안에서 값을 돌려주는 키워드가 바로 yield이고, 이 문장 하나가 추상 구문 트리에서 YieldTree 노드에 해당해요.

yield는 보통 화살표 형태의 분기나 레이블이 있는 switch 표현식 안에서 이렇게 사용됩니다.

int x = switch (day) {
    case MONDAY -> yield 1;
    default -> yield 0;
};

메서드

  • getValue()yield 뒤에 오는 표현식을 나타내는 ExpressionTree를 반환해요. 즉 이 yield 문이 어떤 값을 돌려주는지 그 표현식 자체를 돌려주는 메서드입니다.

이 인터페이스는 StatementTreeTree를 상속하므로, 문장 노드로 다룰 수 있는 일반적인 규약과 accept, getKind 같은 Tree의 기본 메서드도 함께 쓸 수 있어요.

더 알아보기

Java 공식 API