Module jdk.compiler
Package com.sun.source.tree

## Enum 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.

- - ### Nested Class Summary

    - ### Nested classes/interfaces declared in class java.lang.Enum

      `Enum.EnumDesc<E extends Enum<E>>`

  - ### 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.
    `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`.
    `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 `||`.
    `CONTINUE` | Used for instances of `ContinueTree`.
    `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 extends 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`.
    `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.
    `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 super bounded wildcard type argument.
    `SWITCH` | Used for instances of `SwitchTree`.
    `SWITCH_EXPRESSION` | Deprecated, for removal: This API element is subject to removal in a future version. This enum constant is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
    `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 `^=`.

  - ### 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 type with the specified name.
    `static Tree.Kind[]` | `values()` | Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods declared in class java.lang.Enum

      `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods declared in class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### 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`.

    - #### 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

          @Deprecated(forRemoval=true,
                      since="12")
          public static final Tree.Kind SWITCH_EXPRESSION

      Deprecated, for removal: This API element is subject to removal in a future version.
      This enum constant is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
      Used for instances of `SwitchExpressionTree`.
      Since:
        12

    - #### 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 extends bounded wildcard type argument.

    - #### SUPER_WILDCARD

          public static final Tree.Kind SUPER_WILDCARD

      Used for instances of `WildcardTree` representing a super 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.

    - #### 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 the not the node you are looking for.

  - ### Method Detail

    - #### values

          public static Tree.Kind[] values()

      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static Tree.Kind valueOf​(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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 type 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