Package spoon.reflect.code
Interface CtYieldStatement
- All Superinterfaces:
Cloneable
,CtCFlowBreak
,CtCodeElement
,CtElement
,CtQueryable
,CtStatement
,CtVisitable
,FactoryAccessor
,Serializable
,SourcePositionHolder
- All Known Implementing Classes:
CtYieldStatementImpl
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 Summary
Modifier and TypeMethodDescriptionclone()
Clone the element which calls this method in a new object.CtExpression<?>
Gets the expression of the yield statement.<T extends CtYieldStatement>
TsetExpression(CtExpression<?> expression)
Gets the expression of the yield statement.Methods inherited from interface spoon.reflect.code.CtCodeElement
partiallyEvaluate
Methods inherited from interface spoon.reflect.declaration.CtElement
addAnnotation, addComment, asIterable, delete, descendantIterator, getAllMetadata, getAnnotatedChildren, getAnnotation, getAnnotation, getAnnotations, getComments, getDirectChildren, getDocComment, getElements, getMetadata, getMetadataKeys, getOriginalSourceFragment, getParent, getParent, getParent, getPath, getPosition, getReferencedTypes, getRoleInParent, getShortRepresentation, getValueByRole, hasAnnotation, hasParent, isImplicit, isParentInitialized, prettyprint, putMetadata, removeAnnotation, removeComment, replace, replace, setAllMetadata, setAnnotations, setComments, setDocComment, setImplicit, setParent, setPosition, setPositions, setValueByRole, toString, toStringDebug, updateAllParentsBelow
Methods inherited from interface spoon.reflect.visitor.chain.CtQueryable
filterChildren, map, map
Methods inherited from interface spoon.reflect.code.CtStatement
comment, getLabel, insertAfter, insertAfter, insertBefore, insertBefore, setLabel
Methods inherited from interface spoon.reflect.visitor.CtVisitable
accept
Methods inherited from interface spoon.processing.FactoryAccessor
getFactory, setFactory
-
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
Gets the expression of the yield statement. Example: case 1 -> {yield 10}; (This syntax is available as a feature since Java 14) -
clone
CtYieldStatement 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 methodsRefactoring.copyType(CtType)
andRefactoring.copyMethod(CtMethod)
instead which does additional work beyond cloning.- Specified by:
clone
in interfaceCtCodeElement
- Specified by:
clone
in interfaceCtElement
- Specified by:
clone
in interfaceCtStatement
-