# Enum Class Tree.Kind

java.lang.Object
java.lang.Enum<Tree.Kind>
com.sun.source.tree.Tree.Kind

All Implemented Interfaces:
  `Serializable, Comparable<Tree.Kind>, Constable`

Enclosing interface:
  `Tree`

public static enum Tree.Kind extends Enum<Tree.Kind>
Enumerates all kinds of trees.

Since:
  1.6

- ## Nested Class Summary

  ### Nested classes/interfaces declared in class Enum

  `Enum.EnumDesc<E>`
  Modifier and Type
  Class
  Description
  `static final class`
  `Enum.EnumDesc<E extends Enum<E>>`
  A nominal descriptor for an `enum` constant.

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `AND`
  Used for instances of `BinaryTree` representing bitwise and logical "and" `&`.
  `AND_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing bitwise and logical "and" assignment `&=`.
  `ANNOTATED_TYPE`
  Used for instances of `AnnotatedTypeTree` representing annotated types.
  `ANNOTATION`
  Used for instances of `AnnotationTree` representing declaration annotations.
  `ANNOTATION_TYPE`
  Used for instances of `ClassTree` representing annotation types.
  `ANY_PATTERN`
  Used for instances of `BindingPatternTree`.
  `ARRAY_ACCESS`
  Used for instances of `ArrayAccessTree`.
  `ARRAY_TYPE`
  Used for instances of `ArrayTypeTree`.
  `ASSERT`
  Used for instances of `AssertTree`.
  `ASSIGNMENT`
  Used for instances of `AssignmentTree`.
  `BINDING_PATTERN`
  Used for instances of `BindingPatternTree`.
  `BITWISE_COMPLEMENT`
  Used for instances of `UnaryTree` representing bitwise complement operator `~`.
  `BLOCK`
  Used for instances of `BlockTree`.
  `BOOLEAN_LITERAL`
  Used for instances of `LiteralTree` representing a boolean literal expression of type `boolean`.
  `BREAK`
  Used for instances of `BreakTree`.
  `CASE`
  Used for instances of `CaseTree`.
  `CATCH`
  Used for instances of `CatchTree`.
  `CHAR_LITERAL`
  Used for instances of `LiteralTree` representing a character literal expression of type `char`.
  `CLASS`
  Used for instances of `ClassTree` representing classes.
  `COMPILATION_UNIT`
  Used for instances of `CompilationUnitTree`.
  `CONDITIONAL_AND`
  Used for instances of `BinaryTree` representing conditional-and `&&`.
  `CONDITIONAL_EXPRESSION`
  Used for instances of `ConditionalExpressionTree`.
  `CONDITIONAL_OR`
  Used for instances of `BinaryTree` representing conditional-or `||`.
  `CONSTANT_CASE_LABEL`
  Used for instances of `ConstantCaseLabelTree`.
  `CONTINUE`
  Used for instances of `ContinueTree`.
  `DECONSTRUCTION_PATTERN`
  Used for instances of `DeconstructionPatternTree`.
  `DEFAULT_CASE_LABEL`
  Used for instances of `DefaultCaseLabelTree`.
  `DIVIDE`
  Used for instances of `BinaryTree` representing division `/`.
  `DIVIDE_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing division assignment `/=`.
  `DO_WHILE_LOOP`
  Used for instances of `DoWhileLoopTree`.
  `DOUBLE_LITERAL`
  Used for instances of `LiteralTree` representing a floating-point literal expression of type `double`.
  `EMPTY_STATEMENT`
  Used for instances of `EmptyStatementTree`.
  `ENHANCED_FOR_LOOP`
  Used for instances of `EnhancedForLoopTree`.
  `ENUM`
  Used for instances of `ClassTree` representing enums.
  `EQUAL_TO`
  Used for instances of `BinaryTree` representing equal-to `==`.
  `ERRONEOUS`
  Used for instances of `ErroneousTree`.
  `EXPORTS`
  Used for instances of `ExportsTree` representing exports directives in a module declaration.
  `EXPRESSION_STATEMENT`
  Used for instances of `ExpressionStatementTree`.
  `EXTENDS_WILDCARD`
  Used for instances of `WildcardTree` representing an upper-bounded wildcard type argument.
  `FLOAT_LITERAL`
  Used for instances of `LiteralTree` representing a floating-point literal expression of type `float`.
  `FOR_LOOP`
  Used for instances of `ForLoopTree`.
  `GREATER_THAN`
  Used for instances of `BinaryTree` representing greater-than `>`.
  `GREATER_THAN_EQUAL`
  Used for instances of `BinaryTree` representing greater-than-equal `>=`.
  `IDENTIFIER`
  Used for instances of `IdentifierTree`.
  `IF`
  Used for instances of `IfTree`.
  `IMPORT`
  Used for instances of `ImportTree`.
  `INSTANCE_OF`
  Used for instances of `InstanceOfTree`.
  `INT_LITERAL`
  Used for instances of `LiteralTree` representing an integral literal expression of type `int`.
  `INTERFACE`
  Used for instances of `ClassTree` representing interfaces.
  `INTERSECTION_TYPE`
  Used for instances of `IntersectionTypeTree`.
  `LABELED_STATEMENT`
  Used for instances of `LabeledStatementTree`.
  `LAMBDA_EXPRESSION`
  Used for instances of `LambdaExpressionTree`.
  `LEFT_SHIFT`
  Used for instances of `BinaryTree` representing left shift `<<`.
  `LEFT_SHIFT_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing left shift assignment `<<=`.
  `LESS_THAN`
  Used for instances of `BinaryTree` representing less-than `<`.
  `LESS_THAN_EQUAL`
  Used for instances of `BinaryTree` representing less-than-equal `<=`.
  `LOGICAL_COMPLEMENT`
  Used for instances of `UnaryTree` representing logical complement operator `!`.
  `LONG_LITERAL`
  Used for instances of `LiteralTree` representing an integral literal expression of type `long`.
  `MEMBER_REFERENCE`
  Used for instances of `MemberReferenceTree`.
  `MEMBER_SELECT`
  Used for instances of `MemberSelectTree`.
  `METHOD`
  Used for instances of `MethodTree`.
  `METHOD_INVOCATION`
  Used for instances of `MethodInvocationTree`.
  `MINUS`
  Used for instances of `BinaryTree` representing subtraction `-`.
  `MINUS_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing subtraction assignment `-=`.
  `MODIFIERS`
  Used for instances of `ModifiersTree`.
  `MODULE`
  Used for instances of `ModuleTree` representing module declarations.
  `MULTIPLY`
  Used for instances of `BinaryTree` representing multiplication `*`.
  `MULTIPLY_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing multiplication assignment `*=`.
  `NEW_ARRAY`
  Used for instances of `NewArrayTree`.
  `NEW_CLASS`
  Used for instances of `NewClassTree`.
  `NOT_EQUAL_TO`
  Used for instances of `BinaryTree` representing not-equal-to `!=`.
  `NULL_LITERAL`
  Used for instances of `LiteralTree` representing the use of `null`.
  `OPENS`
  Used for instances of `ExportsTree` representing opens directives in a module declaration.
  `OR`
  Used for instances of `BinaryTree` representing bitwise and logical "or" `|`.
  `OR_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing bitwise and logical "or" assignment `|=`.
  `OTHER`
  An implementation-reserved node.
  `PACKAGE`
  Used for instances of `PackageTree`.
  `PARAMETERIZED_TYPE`
  Used for instances of `ParameterizedTypeTree`.
  `PARENTHESIZED`
  Used for instances of `ParenthesizedTree`.
  `PATTERN_CASE_LABEL`
  Used for instances of `PatternCaseLabelTree`.
  `PLUS`
  Used for instances of `BinaryTree` representing addition or string concatenation `+`.
  `PLUS_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing addition or string concatenation assignment `+=`.
  `POSTFIX_DECREMENT`
  Used for instances of `UnaryTree` representing postfix decrement operator `--`.
  `POSTFIX_INCREMENT`
  Used for instances of `UnaryTree` representing postfix increment operator `++`.
  `PREFIX_DECREMENT`
  Used for instances of `UnaryTree` representing prefix decrement operator `--`.
  `PREFIX_INCREMENT`
  Used for instances of `UnaryTree` representing prefix increment operator `++`.
  `PRIMITIVE_TYPE`
  Used for instances of `PrimitiveTypeTree`.
  `PROVIDES`
  Used for instances of `ProvidesTree` representing provides directives in a module declaration.
  `RECORD`
  Used for instances of `ClassTree` representing records.
  `REMAINDER`
  Used for instances of `BinaryTree` representing remainder `%`.
  `REMAINDER_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing remainder assignment `%=`.
  `REQUIRES`
  Used for instances of `RequiresTree` representing requires directives in a module declaration.
  `RETURN`
  Used for instances of `ReturnTree`.
  `RIGHT_SHIFT`
  Used for instances of `BinaryTree` representing right shift `>>`.
  `RIGHT_SHIFT_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing right shift assignment `>>=`.
  `STRING_LITERAL`
  Used for instances of `LiteralTree` representing a string literal expression of type `String`.
  `SUPER_WILDCARD`
  Used for instances of `WildcardTree` representing a lower-bounded wildcard type argument.
  `SWITCH`
  Used for instances of `SwitchTree`.
  `SWITCH_EXPRESSION`
  Used for instances of `SwitchExpressionTree`.
  `SYNCHRONIZED`
  Used for instances of `SynchronizedTree`.
  `THROW`
  Used for instances of `ThrowTree`.
  `TRY`
  Used for instances of `TryTree`.
  `TYPE_ANNOTATION`
  Used for instances of `AnnotationTree` representing type annotations.
  `TYPE_CAST`
  Used for instances of `TypeCastTree`.
  `TYPE_PARAMETER`
  Used for instances of `TypeParameterTree`.
  `UNARY_MINUS`
  Used for instances of `UnaryTree` representing unary minus operator `-`.
  `UNARY_PLUS`
  Used for instances of `UnaryTree` representing unary plus operator `+`.
  `UNBOUNDED_WILDCARD`
  Used for instances of `WildcardTree` representing an unbounded wildcard type argument.
  `UNION_TYPE`
  Used for instances of `UnionTypeTree`.
  `UNSIGNED_RIGHT_SHIFT`
  Used for instances of `BinaryTree` representing unsigned right shift `>>>`.
  `UNSIGNED_RIGHT_SHIFT_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing unsigned right shift assignment `>>>=`.
  `USES`
  Used for instances of `UsesTree` representing uses directives in a module declaration.
  `VARIABLE`
  Used for instances of `VariableTree`.
  `WHILE_LOOP`
  Used for instances of `WhileLoopTree`.
  `XOR`
  Used for instances of `BinaryTree` representing bitwise and logical "xor" `^`.
  `XOR_ASSIGNMENT`
  Used for instances of `CompoundAssignmentTree` representing bitwise and logical "xor" assignment `^=`.
  `YIELD`
  Used for instances of `YieldTree`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Class<? extends Tree>`
  `asInterface()`
  Returns the associated interface type that uses this kind.
  `static Tree.Kind`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static Tree.Kind[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods declared in class Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`
  Modifier and Type
  Method
  Description
  `protected final Object`
  `clone()`
  Throws CloneNotSupportedException.
  `final int`
  `compareTo(Tree.Kind o)`
  Compares this enum with the specified object for order.
  `final Optional<Enum.EnumDesc<Tree.Kind>>`
  `describeConstable()`
  Returns an enum descriptor `EnumDesc` for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `final boolean`
  `equals(Object other)`
  Returns true if the specified object is equal to this enum constant.
  `protected final void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization has been deprecated for removal.
  `final Class<Tree.Kind>`
  `getDeclaringClass()`
  Returns the Class object corresponding to this enum constant's enum type.
  `final int`
  `hashCode()`
  Returns a hash code for this enum constant.
  `final String`
  `name()`
  Returns the name of this enum constant, exactly as declared in its enum declaration.
  `final int`
  `ordinal()`
  Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero).
  `String`
  `toString()`
  Returns the name of this enum constant, as contained in the declaration.
  `static <T extends Enum<T>>
  T`
  `valueOf(Class<T> enumClass, String name)`
  Returns the enum constant of the specified enum class with the specified name.

  ### Methods declared in class Object

  `getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Enum Constant Details

  - ### ANNOTATED_TYPE

    public static final Tree.Kind ANNOTATED_TYPE
    Used for instances of `AnnotatedTypeTree` representing annotated types.

  - ### ANNOTATION

    public static final Tree.Kind ANNOTATION
    Used for instances of `AnnotationTree` representing declaration annotations.

  - ### TYPE_ANNOTATION

    public static final Tree.Kind TYPE_ANNOTATION
    Used for instances of `AnnotationTree` representing type annotations.

  - ### ARRAY_ACCESS

    public static final Tree.Kind ARRAY_ACCESS
    Used for instances of `ArrayAccessTree`.

  - ### ARRAY_TYPE

    public static final Tree.Kind ARRAY_TYPE
    Used for instances of `ArrayTypeTree`.

  - ### ASSERT

    public static final Tree.Kind ASSERT
    Used for instances of `AssertTree`.

  - ### ASSIGNMENT

    public static final Tree.Kind ASSIGNMENT
    Used for instances of `AssignmentTree`.

  - ### BLOCK

    public static final Tree.Kind BLOCK
    Used for instances of `BlockTree`.

  - ### BREAK

    public static final Tree.Kind BREAK
    Used for instances of `BreakTree`.

  - ### CASE

    public static final Tree.Kind CASE
    Used for instances of `CaseTree`.

  - ### CATCH

    public static final Tree.Kind CATCH
    Used for instances of `CatchTree`.

  - ### CLASS

    public static final Tree.Kind CLASS
    Used for instances of `ClassTree` representing classes.

  - ### COMPILATION_UNIT

    public static final Tree.Kind COMPILATION_UNIT
    Used for instances of `CompilationUnitTree`.

  - ### CONDITIONAL_EXPRESSION

    public static final Tree.Kind CONDITIONAL_EXPRESSION
    Used for instances of `ConditionalExpressionTree`.

  - ### CONTINUE

    public static final Tree.Kind CONTINUE
    Used for instances of `ContinueTree`.

  - ### DO_WHILE_LOOP

    public static final Tree.Kind DO_WHILE_LOOP
    Used for instances of `DoWhileLoopTree`.

  - ### ENHANCED_FOR_LOOP

    public static final Tree.Kind ENHANCED_FOR_LOOP
    Used for instances of `EnhancedForLoopTree`.

  - ### EXPRESSION_STATEMENT

    public static final Tree.Kind EXPRESSION_STATEMENT
    Used for instances of `ExpressionStatementTree`.

  - ### MEMBER_SELECT

    public static final Tree.Kind MEMBER_SELECT
    Used for instances of `MemberSelectTree`.

  - ### MEMBER_REFERENCE

    public static final Tree.Kind MEMBER_REFERENCE
    Used for instances of `MemberReferenceTree`.

  - ### FOR_LOOP

    public static final Tree.Kind FOR_LOOP
    Used for instances of `ForLoopTree`.

  - ### IDENTIFIER

    public static final Tree.Kind IDENTIFIER
    Used for instances of `IdentifierTree`.

  - ### IF

    public static final Tree.Kind IF
    Used for instances of `IfTree`.

  - ### IMPORT

    public static final Tree.Kind IMPORT
    Used for instances of `ImportTree`.

  - ### INSTANCE_OF

    public static final Tree.Kind INSTANCE_OF
    Used for instances of `InstanceOfTree`.

  - ### LABELED_STATEMENT

    public static final Tree.Kind LABELED_STATEMENT
    Used for instances of `LabeledStatementTree`.

  - ### METHOD

    public static final Tree.Kind METHOD
    Used for instances of `MethodTree`.

  - ### METHOD_INVOCATION

    public static final Tree.Kind METHOD_INVOCATION
    Used for instances of `MethodInvocationTree`.

  - ### MODIFIERS

    public static final Tree.Kind MODIFIERS
    Used for instances of `ModifiersTree`.

  - ### NEW_ARRAY

    public static final Tree.Kind NEW_ARRAY
    Used for instances of `NewArrayTree`.

  - ### NEW_CLASS

    public static final Tree.Kind NEW_CLASS
    Used for instances of `NewClassTree`.

  - ### LAMBDA_EXPRESSION

    public static final Tree.Kind LAMBDA_EXPRESSION
    Used for instances of `LambdaExpressionTree`.

  - ### PACKAGE

    public static final Tree.Kind PACKAGE
    Used for instances of `PackageTree`.
    Since:
      9

  - ### PARENTHESIZED

    public static final Tree.Kind PARENTHESIZED
    Used for instances of `ParenthesizedTree`.

  - ### ANY_PATTERN

    public static final Tree.Kind ANY_PATTERN
    Used for instances of `BindingPatternTree`.
    Since:
      22

  - ### BINDING_PATTERN

    public static final Tree.Kind BINDING_PATTERN
    Used for instances of `BindingPatternTree`.
    Since:
      16

  - ### DEFAULT_CASE_LABEL

    public static final Tree.Kind DEFAULT_CASE_LABEL
    Used for instances of `DefaultCaseLabelTree`.
    Since:
      21

  - ### CONSTANT_CASE_LABEL

    public static final Tree.Kind CONSTANT_CASE_LABEL
    Used for instances of `ConstantCaseLabelTree`.
    Since:
      21

  - ### PATTERN_CASE_LABEL

    public static final Tree.Kind PATTERN_CASE_LABEL
    Used for instances of `PatternCaseLabelTree`.
    Since:
      21

  - ### DECONSTRUCTION_PATTERN

    public static final Tree.Kind DECONSTRUCTION_PATTERN
    Used for instances of `DeconstructionPatternTree`.
    Since:
      21

  - ### PRIMITIVE_TYPE

    public static final Tree.Kind PRIMITIVE_TYPE
    Used for instances of `PrimitiveTypeTree`.

  - ### RETURN

    public static final Tree.Kind RETURN
    Used for instances of `ReturnTree`.

  - ### EMPTY_STATEMENT

    public static final Tree.Kind EMPTY_STATEMENT
    Used for instances of `EmptyStatementTree`.

  - ### SWITCH

    public static final Tree.Kind SWITCH
    Used for instances of `SwitchTree`.

  - ### SWITCH_EXPRESSION

    public static final Tree.Kind SWITCH_EXPRESSION
    Used for instances of `SwitchExpressionTree`.
    Since:
      14

  - ### SYNCHRONIZED

    public static final Tree.Kind SYNCHRONIZED
    Used for instances of `SynchronizedTree`.

  - ### THROW

    public static final Tree.Kind THROW
    Used for instances of `ThrowTree`.

  - ### TRY

    public static final Tree.Kind TRY
    Used for instances of `TryTree`.

  - ### PARAMETERIZED_TYPE

    public static final Tree.Kind PARAMETERIZED_TYPE
    Used for instances of `ParameterizedTypeTree`.

  - ### UNION_TYPE

    public static final Tree.Kind UNION_TYPE
    Used for instances of `UnionTypeTree`.

  - ### INTERSECTION_TYPE

    public static final Tree.Kind INTERSECTION_TYPE
    Used for instances of `IntersectionTypeTree`.

  - ### TYPE_CAST

    public static final Tree.Kind TYPE_CAST
    Used for instances of `TypeCastTree`.

  - ### TYPE_PARAMETER

    public static final Tree.Kind TYPE_PARAMETER
    Used for instances of `TypeParameterTree`.

  - ### VARIABLE

    public static final Tree.Kind VARIABLE
    Used for instances of `VariableTree`.

  - ### WHILE_LOOP

    public static final Tree.Kind WHILE_LOOP
    Used for instances of `WhileLoopTree`.

  - ### POSTFIX_INCREMENT

    public static final Tree.Kind POSTFIX_INCREMENT
    Used for instances of `UnaryTree` representing postfix increment operator `++`.

  - ### POSTFIX_DECREMENT

    public static final Tree.Kind POSTFIX_DECREMENT
    Used for instances of `UnaryTree` representing postfix decrement operator `--`.

  - ### PREFIX_INCREMENT

    public static final Tree.Kind PREFIX_INCREMENT
    Used for instances of `UnaryTree` representing prefix increment operator `++`.

  - ### PREFIX_DECREMENT

    public static final Tree.Kind PREFIX_DECREMENT
    Used for instances of `UnaryTree` representing prefix decrement operator `--`.

  - ### UNARY_PLUS

    public static final Tree.Kind UNARY_PLUS
    Used for instances of `UnaryTree` representing unary plus operator `+`.

  - ### UNARY_MINUS

    public static final Tree.Kind UNARY_MINUS
    Used for instances of `UnaryTree` representing unary minus operator `-`.

  - ### BITWISE_COMPLEMENT

    public static final Tree.Kind BITWISE_COMPLEMENT
    Used for instances of `UnaryTree` representing bitwise complement operator `~`.

  - ### LOGICAL_COMPLEMENT

    public static final Tree.Kind LOGICAL_COMPLEMENT
    Used for instances of `UnaryTree` representing logical complement operator `!`.

  - ### MULTIPLY

    public static final Tree.Kind MULTIPLY
    Used for instances of `BinaryTree` representing multiplication `*`.

  - ### DIVIDE

    public static final Tree.Kind DIVIDE
    Used for instances of `BinaryTree` representing division `/`.

  - ### REMAINDER

    public static final Tree.Kind REMAINDER
    Used for instances of `BinaryTree` representing remainder `%`.

  - ### PLUS

    public static final Tree.Kind PLUS
    Used for instances of `BinaryTree` representing addition or string concatenation `+`.

  - ### MINUS

    public static final Tree.Kind MINUS
    Used for instances of `BinaryTree` representing subtraction `-`.

  - ### LEFT_SHIFT

    public static final Tree.Kind LEFT_SHIFT
    Used for instances of `BinaryTree` representing left shift `<<`.

  - ### RIGHT_SHIFT

    public static final Tree.Kind RIGHT_SHIFT
    Used for instances of `BinaryTree` representing right shift `>>`.

  - ### UNSIGNED_RIGHT_SHIFT

    public static final Tree.Kind UNSIGNED_RIGHT_SHIFT
    Used for instances of `BinaryTree` representing unsigned right shift `>>>`.

  - ### LESS_THAN

    public static final Tree.Kind LESS_THAN
    Used for instances of `BinaryTree` representing less-than `<`.

  - ### GREATER_THAN

    public static final Tree.Kind GREATER_THAN
    Used for instances of `BinaryTree` representing greater-than `>`.

  - ### LESS_THAN_EQUAL

    public static final Tree.Kind LESS_THAN_EQUAL
    Used for instances of `BinaryTree` representing less-than-equal `<=`.

  - ### GREATER_THAN_EQUAL

    public static final Tree.Kind GREATER_THAN_EQUAL
    Used for instances of `BinaryTree` representing greater-than-equal `>=`.

  - ### EQUAL_TO

    public static final Tree.Kind EQUAL_TO
    Used for instances of `BinaryTree` representing equal-to `==`.

  - ### NOT_EQUAL_TO

    public static final Tree.Kind NOT_EQUAL_TO
    Used for instances of `BinaryTree` representing not-equal-to `!=`.

  - ### AND

    public static final Tree.Kind AND
    Used for instances of `BinaryTree` representing bitwise and logical "and" `&`.

  - ### XOR

    public static final Tree.Kind XOR
    Used for instances of `BinaryTree` representing bitwise and logical "xor" `^`.

  - ### OR

    public static final Tree.Kind OR
    Used for instances of `BinaryTree` representing bitwise and logical "or" `|`.

  - ### CONDITIONAL_AND

    public static final Tree.Kind CONDITIONAL_AND
    Used for instances of `BinaryTree` representing conditional-and `&&`.

  - ### CONDITIONAL_OR

    public static final Tree.Kind CONDITIONAL_OR
    Used for instances of `BinaryTree` representing conditional-or `||`.

  - ### MULTIPLY_ASSIGNMENT

    public static final Tree.Kind MULTIPLY_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing multiplication assignment `*=`.

  - ### DIVIDE_ASSIGNMENT

    public static final Tree.Kind DIVIDE_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing division assignment `/=`.

  - ### REMAINDER_ASSIGNMENT

    public static final Tree.Kind REMAINDER_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing remainder assignment `%=`.

  - ### PLUS_ASSIGNMENT

    public static final Tree.Kind PLUS_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing addition or string concatenation assignment `+=`.

  - ### MINUS_ASSIGNMENT

    public static final Tree.Kind MINUS_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing subtraction assignment `-=`.

  - ### LEFT_SHIFT_ASSIGNMENT

    public static final Tree.Kind LEFT_SHIFT_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing left shift assignment `<<=`.

  - ### RIGHT_SHIFT_ASSIGNMENT

    public static final Tree.Kind RIGHT_SHIFT_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing right shift assignment `>>=`.

  - ### UNSIGNED_RIGHT_SHIFT_ASSIGNMENT

    public static final Tree.Kind UNSIGNED_RIGHT_SHIFT_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing unsigned right shift assignment `>>>=`.

  - ### AND_ASSIGNMENT

    public static final Tree.Kind AND_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing bitwise and logical "and" assignment `&=`.

  - ### XOR_ASSIGNMENT

    public static final Tree.Kind XOR_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing bitwise and logical "xor" assignment `^=`.

  - ### OR_ASSIGNMENT

    public static final Tree.Kind OR_ASSIGNMENT
    Used for instances of `CompoundAssignmentTree` representing bitwise and logical "or" assignment `|=`.

  - ### INT_LITERAL

    public static final Tree.Kind INT_LITERAL
    Used for instances of `LiteralTree` representing an integral literal expression of type `int`.

  - ### LONG_LITERAL

    public static final Tree.Kind LONG_LITERAL
    Used for instances of `LiteralTree` representing an integral literal expression of type `long`.

  - ### FLOAT_LITERAL

    public static final Tree.Kind FLOAT_LITERAL
    Used for instances of `LiteralTree` representing a floating-point literal expression of type `float`.

  - ### DOUBLE_LITERAL

    public static final Tree.Kind DOUBLE_LITERAL
    Used for instances of `LiteralTree` representing a floating-point literal expression of type `double`.

  - ### BOOLEAN_LITERAL

    public static final Tree.Kind BOOLEAN_LITERAL
    Used for instances of `LiteralTree` representing a boolean literal expression of type `boolean`.

  - ### CHAR_LITERAL

    public static final Tree.Kind CHAR_LITERAL
    Used for instances of `LiteralTree` representing a character literal expression of type `char`.

  - ### STRING_LITERAL

    public static final Tree.Kind STRING_LITERAL
    Used for instances of `LiteralTree` representing a string literal expression of type `String`.

  - ### NULL_LITERAL

    public static final Tree.Kind NULL_LITERAL
    Used for instances of `LiteralTree` representing the use of `null`.

  - ### UNBOUNDED_WILDCARD

    public static final Tree.Kind UNBOUNDED_WILDCARD
    Used for instances of `WildcardTree` representing an unbounded wildcard type argument.

  - ### EXTENDS_WILDCARD

    public static final Tree.Kind EXTENDS_WILDCARD
    Used for instances of `WildcardTree` representing an upper-bounded wildcard type argument.

  - ### SUPER_WILDCARD

    public static final Tree.Kind SUPER_WILDCARD
    Used for instances of `WildcardTree` representing a lower-bounded wildcard type argument.

  - ### ERRONEOUS

    public static final Tree.Kind ERRONEOUS
    Used for instances of `ErroneousTree`.

  - ### INTERFACE

    public static final Tree.Kind INTERFACE
    Used for instances of `ClassTree` representing interfaces.

  - ### ENUM

    public static final Tree.Kind ENUM
    Used for instances of `ClassTree` representing enums.

  - ### ANNOTATION_TYPE

    public static final Tree.Kind ANNOTATION_TYPE
    Used for instances of `ClassTree` representing annotation types.

  - ### MODULE

    public static final Tree.Kind MODULE
    Used for instances of `ModuleTree` representing module declarations.

  - ### EXPORTS

    public static final Tree.Kind EXPORTS
    Used for instances of `ExportsTree` representing exports directives in a module declaration.

  - ### OPENS

    public static final Tree.Kind OPENS
    Used for instances of `ExportsTree` representing opens directives in a module declaration.

  - ### PROVIDES

    public static final Tree.Kind PROVIDES
    Used for instances of `ProvidesTree` representing provides directives in a module declaration.

  - ### RECORD

    public static final Tree.Kind RECORD
    Used for instances of `ClassTree` representing records.
    Since:
      16

  - ### REQUIRES

    public static final Tree.Kind REQUIRES
    Used for instances of `RequiresTree` representing requires directives in a module declaration.

  - ### USES

    public static final Tree.Kind USES
    Used for instances of `UsesTree` representing uses directives in a module declaration.

  - ### OTHER

    public static final Tree.Kind OTHER
    An implementation-reserved node. This is not the node you are looking for.

  - ### YIELD

    public static final Tree.Kind YIELD
    Used for instances of `YieldTree`.
    Since:
      14

- ## Method Details

  - ### values

    public static Tree.Kind[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static Tree.Kind valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### asInterface

    public Class<? extends Tree> asInterface()
    Returns the associated interface type that uses this kind.
    Returns:
      the associated interface