Interface CtCasePattern

All Superinterfaces:
Cloneable, CtCodeElement, CtElement, CtExpression<Void>, CtQueryable, CtTypedElement<Void>, CtVisitable, FactoryAccessor, Serializable, SourcePositionHolder, TemplateParameter<Void>
All Known Implementing Classes:
CtCasePatternImpl

public interface CtCasePattern extends CtExpression<Void>
This code element represents a case pattern, introduced in Java 21 by JEP 441.

Example:

 Number num = Math.random() invalid input: '<' 0.5 ? Integer.valueOf(1) : Double.valueOf(10.5);
 switch (num) {
    case Integer i -> System.out.println("int: " + i);
    case Double d when d > 0.5 -> System.out.println("double: " + d);
    case null, default -> System.out.println("other");
 }
 
  • Method Details

    • getPattern

      CtPattern getPattern()
      Returns the pattern of of this case pattern.
      Returns:
      the pattern of of this case pattern
    • setPattern

      CtCasePattern setPattern(CtPattern pattern)
      Sets the pattern for this case pattern.
      Parameters:
      pattern - the new pattern for this case pattern.
      Returns:
      this case pattern.
    • clone

      CtCasePattern 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 CtExpression<Void>
      Returns:
      a clone of this element. All children are cloned, but the parent of the returned clone is set to null.