Interface CtYieldStatement

All Superinterfaces:
Cloneable, CtCFlowBreak, CtCodeElement, CtElement, CtQueryable, CtStatement, CtVisitable, FactoryAccessor, Serializable, SourcePositionHolder
All Known Implementing Classes:
CtYieldStatementImpl

public interface CtYieldStatement extends CtCFlowBreak
This code element defines a yield statement. Example:
     int x = 0;
     x = switch ("foo") {
         default -> {
                                        x=x+1;
                                        yield x; //<--- yield statement
                                        }
     };
 
A yield statement is implicit in the following example: Example:
     int x = 0;
     x = switch ("foo") {
         default -> 4; //<---  implicit yield statement
     };
 
the example wouldn't be allowed without the brackets at the default case, because java syntax defines case -> [expression] or case -> [blockStatement] and yield is not a expression.
  • Method Details

    • getExpression

      CtExpression<?> getExpression()
      Gets the expression of the yield statement. Example: case 1 -> {yield 10}; (This syntax is available as a feature since Java 14)
    • setExpression

      <T extends CtYieldStatement> T setExpression(CtExpression<?> expression)
      Gets the expression of the yield statement. Example: case 1 -> {yield 10}; (This syntax is available as a feature since Java 14)
    • clone

      Description copied from interface: CtElement
      Clone the element which calls this method in a new object. Note that that references are kept as is, and thus, so if you clone whole classes or methods, some parts of the cloned element (eg executable references) may still point to the initial element. In this case, consider using methods Refactoring.copyType(CtType) and Refactoring.copyMethod(CtMethod) instead which does additional work beyond cloning.
      Specified by:
      clone in interface CtCodeElement
      Specified by:
      clone in interface CtElement
      Specified by:
      clone in interface CtStatement