YieldTree
YieldTree (yield 문 트리 노드)
switch 표현식에서 값을 돌려주는 yield 문 하나를 나타내는 트리 노드입니다. 자바 13부터 도입된 yield는 switch 표현식의 각 분기에서 반환할 값을 만들어 내는 역할을 해요.
본문
전통적인 switch 문은 값을 만들지 않고 각 분기에서 실행할 동작만 골랐다면, switch 표현식은 전체가 하나의 값으로 평가됩니다. 이때 분기 안에서 값을 돌려주는 키워드가 바로 yield이고, 이 문장 하나가 추상 구문 트리에서 YieldTree 노드에 해당해요.
yield는 보통 화살표 형태의 분기나 레이블이 있는 switch 표현식 안에서 이렇게 사용됩니다.
int x = switch (day) {
case MONDAY -> yield 1;
default -> yield 0;
};
메서드
getValue()—yield뒤에 오는 표현식을 나타내는ExpressionTree를 반환해요. 즉 이yield문이 어떤 값을 돌려주는지 그 표현식 자체를 돌려주는 메서드입니다.
이 인터페이스는 StatementTree와 Tree를 상속하므로, 문장 노드로 다룰 수 있는 일반적인 규약과 accept, getKind 같은 Tree의 기본 메서드도 함께 쓸 수 있어요.