Top Description Fields Constructors Methods
com.github.javaparser.ast.expr

public Class SwitchExpr

extends Expression
implements SwitchNode
Class Inheritance
All Implemented Interfaces
com.github.javaparser.ast.nodeTypes.SwitchNode
Imports
com.github.javaparser.TokenRange, com.github.javaparser.ast.AllFieldsConstructor, .Generated, .Node, .NodeList, com.github.javaparser.ast.nodeTypes.SwitchNode, com.github.javaparser.ast.observer.ObservableProperty, com.github.javaparser.ast.stmt.Statement, .SwitchEntry, com.github.javaparser.ast.visitor.CloneVisitor, .GenericVisitor, .VoidVisitor, com.github.javaparser.metamodel.JavaParserMetaModel, .SwitchStmtMetaModel, .SwitchExprMetaModel, java.util.Optional, java.util.function.Consumer

The switch expression

Java 1.0-11

Not available.

Java 12

Like com.github.javaparser.ast.stmt.SwitchStmt, but can also be used as an expression.

int a = switch(x) { case 5,6 -> 20; case 9 -> 30; default -> 40; };
int a = switch(x) { case 5,6: break 20; default: break 5+5; };

Java 13

The break statement has been reverted to what it was before Java 12, and break-with-value is now the YieldStatement.
int a = switch(x) { case 5,6: yield 20; default: yield 5+5; };
See Also
SwitchEntry, com.github.javaparser.ast.stmt.SwitchStmt, SwitchNode, com.github.javaparser.ast.stmt.BreakStmt, com.github.javaparser.ast.stmt.YieldStmt

Field Summary

Modifier and TypeField and Description
private NodeList<SwitchEntry>
private Expression

Constructor Summary

AccessConstructor and Description
public
public
SwitchExpr(final Expression selector, final NodeList<SwitchEntry> entries)

public
SwitchExpr(TokenRange tokenRange, Expression selector, NodeList<SwitchEntry> entries)

This constructor is used by the parser and is considered private.

Method Summary

Modifier and TypeMethod and Description
public <R, A> R
accept(final GenericVisitor<R, A>
the visitor implementation
v
,
final A
the argument passed to the visitor (of type A)
arg
)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.
public <A> void
accept(final VoidVisitor<A>
the visitor implementation
v
,
final A
any value relevant for the visitor (of type A)
arg
)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.
public SwitchExpr
public SwitchExpr
clone()

Overrides com.github.javaparser.ast.expr.Expression.clone.

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.clone.

Creates and returns a copy of this object.
public NodeList<SwitchEntry>
public SwitchEntry
public SwitchExprMetaModel
public Expression
public void
public boolean
public boolean
public boolean
public SwitchExpr
public SwitchExpr
public Optional<SwitchExpr>
Inherited from com.github.javaparser.ast.expr.Expression:
asAnnotationExprasArrayAccessExprasArrayCreationExprasArrayInitializerExprasAssignExprasBinaryExprasBooleanLiteralExprasCastExprasCharLiteralExprasClassExprasConditionalExprasDoubleLiteralExprasEnclosedExprasFieldAccessExprasInstanceOfExprasIntegerLiteralExprasLambdaExprasLiteralExprasLiteralStringValueExprasLongLiteralExprasMarkerAnnotationExprasMethodCallExprasMethodReferenceExprasNameExprasNormalAnnotationExprasNullLiteralExprasObjectCreationExprasSingleMemberAnnotationExprasStringLiteralExprasSuperExprasTextBlockLiteralExprasThisExprasTypeExprasUnaryExprasVariableDeclarationExprcalculateResolvedTypeifAnnotationExprifArrayAccessExprifArrayCreationExprifArrayInitializerExprifAssignExprifBinaryExprifBooleanLiteralExprifCastExprifCharLiteralExprifClassExprifConditionalExprifDoubleLiteralExprifEnclosedExprifFieldAccessExprifInstanceOfExprifIntegerLiteralExprifLambdaExprifLiteralExprifLiteralStringValueExprifLongLiteralExprifMarkerAnnotationExprifMethodCallExprifMethodReferenceExprifNameExprifNormalAnnotationExprifNullLiteralExprifObjectCreationExprifSingleMemberAnnotationExprifStringLiteralExprifSuperExprifTextBlockLiteralExprifThisExprifTypeExprifUnaryExprifVariableDeclarationExprisAnnotationExprisArrayAccessExprisArrayCreationExprisArrayInitializerExprisAssignExprisBinaryExprisBooleanLiteralExprisCastExprisCharLiteralExprisClassExprisConditionalExprisDoubleLiteralExprisEnclosedExprisFieldAccessExprisInstanceOfExprisIntegerLiteralExprisLambdaExprisLiteralExprisLiteralStringValueExprisLongLiteralExprisMarkerAnnotationExprisMethodCallExprisMethodReferenceExprisNameExprisNormalAnnotationExprisNullLiteralExprisObjectCreationExprisSingleMemberAnnotationExprisStringLiteralExprisSuperExprisTextBlockLiteralExprisThisExprisTypeExprisUnaryExprisVariableDeclarationExprtoAnnotationExprtoArrayAccessExprtoArrayCreationExprtoArrayInitializerExprtoAssignExprtoBinaryExprtoBooleanLiteralExprtoCastExprtoCharLiteralExprtoClassExprtoConditionalExprtoDoubleLiteralExprtoEnclosedExprtoFieldAccessExprtoInstanceOfExprtoIntegerLiteralExprtoLambdaExprtoLiteralExprtoLiteralStringValueExprtoLongLiteralExprtoMarkerAnnotationExprtoMethodCallExprtoMethodReferenceExprtoNameExprtoNormalAnnotationExprtoNullLiteralExprtoObjectCreationExprtoSingleMemberAnnotationExprtoStringLiteralExprtoSuperExprtoTextBlockLiteralExprtoThisExprtoTypeExprtoUnaryExprtoVariableDeclarationExpr

Field Detail

entriesback to summary
private NodeList<SwitchEntry> entries
selectorback to summary
private Expression selector

Constructor Detail

SwitchExprback to summary
public SwitchExpr()
SwitchExprback to summary
public SwitchExpr(final Expression selector, final NodeList<SwitchEntry> entries)
Annotations
@AllFieldsConstructor
SwitchExprback to summary
public SwitchExpr(TokenRange tokenRange, Expression selector, NodeList<SwitchEntry> entries)

This constructor is used by the parser and is considered private.

Annotations
@Generated:com.github.javaparser.generator.core.node.MainConstructorGenerator

Method Detail

acceptback to summary
public <R, A> R accept(final GenericVisitor<R, A> v, final A arg)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Doc from com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.

Parameters
<R>
the type of the return value of the visitor
<A>
the type the user argument passed to the visitor
v:GenericVisitor<R, A>

the visitor implementation

arg:A

the argument passed to the visitor (of type A)

Returns:R

the result of the visit (of type R)

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.AcceptGenerator
acceptback to summary
public <A> void accept(final VoidVisitor<A> v, final A arg)

Implements com.github.javaparser.ast.visitor.Visitable.accept.

Doc from com.github.javaparser.ast.visitor.Visitable.accept.

Accept method for visitor support.

Parameters
<A>
the type the argument passed for the visitor
v:VoidVisitor<A>

the visitor implementation

arg:A

any value relevant for the visitor (of type A)

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.AcceptGenerator
asSwitchExprback to summary
public SwitchExpr asSwitchExpr()

Overrides com.github.javaparser.ast.expr.Expression.asSwitchExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
cloneback to summary
public SwitchExpr clone()

Overrides com.github.javaparser.ast.expr.Expression.clone.

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.clone.

Doc from java.lang.Object.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.

Returns:SwitchExpr

a clone of this instance.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.CloneGenerator
getEntriesback to summary
public NodeList<SwitchEntry> getEntries()

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.getEntries.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
getEntryback to summary
public SwitchEntry getEntry(int i)

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.getEntry.

getMetaModelback to summary
public SwitchExprMetaModel getMetaModel()

Overrides com.github.javaparser.ast.expr.Expression.getMetaModel.

Returns:SwitchExprMetaModel

Doc from com.github.javaparser.ast.Node.getMetaModel.

get JavaParser specific node introspection information.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.GetMetaModelGenerator
getSelectorback to summary
public Expression getSelector()

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.getSelector.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
ifSwitchExprback to summary
public void ifSwitchExpr(Consumer<SwitchExpr> action)

Overrides com.github.javaparser.ast.expr.Expression.ifSwitchExpr.

Annotations
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
isSwitchExprback to summary
public boolean isSwitchExpr()

Overrides com.github.javaparser.ast.expr.Expression.isSwitchExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator
removeback to summary
public boolean remove(Node node)

Overrides com.github.javaparser.ast.expr.Expression.remove.

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.remove.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.RemoveMethodGenerator
replaceback to summary
public boolean replace(Node node, Node replacementNode)

Overrides com.github.javaparser.ast.expr.Expression.replace.

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.replace.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.ReplaceMethodGenerator
setEntriesback to summary
public SwitchExpr setEntries(final NodeList<SwitchEntry> entries)

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.setEntries.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
setSelectorback to summary
public SwitchExpr setSelector(final Expression selector)

Implements com.github.javaparser.ast.nodeTypes.SwitchNode.setSelector.

Annotations
@Generated:com.github.javaparser.generator.core.node.PropertyGenerator
toSwitchExprback to summary
public Optional<SwitchExpr> toSwitchExpr()

Overrides com.github.javaparser.ast.expr.Expression.toSwitchExpr.

Annotations
@Override
@Generated:com.github.javaparser.generator.core.node.TypeCastingGenerator