Package-level declarations

Types

Link copied to clipboard
A base class for the different types of annotations.
Link copied to clipboard
Array brackets [] being used to get a value from an array.
Link copied to clipboard
new int[5][4][][] or new int[][]{{1},{2,3}}.
Link copied to clipboard
The initialization of an array.
Link copied to clipboard
open class AssignExpr : Expression
An assignment expression.
Link copied to clipboard
open class BinaryExpr : Expression
An expression with an expression on the left, an expression on the right, and an operator in the middle.
Link copied to clipboard
The boolean literals.
Link copied to clipboard
Link copied to clipboard
A literal character.
Link copied to clipboard
Defines an expression that accesses the class of a type.
Link copied to clipboard

Pattern Matching in Java

Java 1.0 to 13

Not available.
Link copied to clipboard
The ternary conditional expression.
Link copied to clipboard
A float or a double constant.
Link copied to clipboard
An expression between ( ).
Link copied to clipboard
abstract class Expression : Node
A base class for all expressions.
Link copied to clipboard

The instanceof statement

Java ?? to 13

The instanceof expression is a relational operator, evaluating to true if the object on the left hand side is an instance of the type (ReferenceType) on the right hand side.
Link copied to clipboard
All ways to specify an int literal.
Link copied to clipboard

A lambda expression

Java 1-7

Does not exist.
Link copied to clipboard
abstract class LiteralExpr : Expression
A base class for all literal expressions.
Link copied to clipboard
Any literal value that is stored internally as a String.
Link copied to clipboard
All ways to specify a long literal.
Link copied to clipboard
An annotation that uses only the annotation type name.
Link copied to clipboard
MatchAllPatternExpressions were added in JEP456.
Link copied to clipboard
A value for a member of an annotation.
Link copied to clipboard
Method reference expressions introduced in Java 8 specifically designed to simplify lambda Expressions.
Link copied to clipboard
A name that may consist of multiple identifiers.
Link copied to clipboard
Whenever a SimpleName is used in an expression, it is wrapped in NameExpr.
Link copied to clipboard
An annotation that has one or more key-value pairs.
Link copied to clipboard
A literal "null".
Link copied to clipboard
PatternExpr serves as the abstract base class for typed pattern expressions.
Link copied to clipboard

Record Patterns

Record patterns were officially added in Java 21 to allow the deconstruction of record values and provide convenient access to inner fields through pattern matching.
Link copied to clipboard
A name that consists of a single identifier.
Link copied to clipboard
An annotation that has a single value.
Link copied to clipboard
A literal string.
Link copied to clipboard
open class SuperExpr : Expression
An occurrence of the "super" keyword.
Link copied to clipboard

The switch expression

Java 1.0-11

Not available.
Link copied to clipboard

A text block

Java 13-

A text block is a multi-line string.
Link copied to clipboard
An occurrence of the "this" keyword.
Link copied to clipboard
This class is just instantiated as scopes for MethodReferenceExpr nodes to encapsulate Types.
Link copied to clipboard

The instanceof statement

Java 1.0 to 13

Not available.
Link copied to clipboard
An expression where an operator is applied to a single expression.