Module java.compiler
Package javax.lang.model.element

## Enum ElementKind

- java.lang.Object
- - java.lang.Enum<ElementKind>
  - - javax.lang.model.element.ElementKind

- All Implemented Interfaces:
    `Serializable`, `Comparable<ElementKind>`, `Constable`

      public enum ElementKind
      extends Enum<ElementKind>

  The `kind` of an element.

  Note that it is possible additional element kinds will be added to accommodate new, currently unknown, language structures added to future versions of the Java™ programming language.

  Since:
    1.6
  See Also:
    `Element`

- - ### 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
    --- | ---
    `ANNOTATION_TYPE` | An annotation type.
    `CLASS` | A class not described by a more specific kind (like `ENUM`).
    `CONSTRUCTOR` | A constructor.
    `ENUM` | An enum type.
    `ENUM_CONSTANT` | An enum constant.
    `EXCEPTION_PARAMETER` | A parameter of an exception handler.
    `FIELD` | A field not described by a more specific kind (like `ENUM_CONSTANT`).
    `INSTANCE_INIT` | An instance initializer.
    `INTERFACE` | An interface not described by a more specific kind (like `ANNOTATION_TYPE`).
    `LOCAL_VARIABLE` | A local variable.
    `METHOD` | A method.
    `MODULE` | A module.
    `OTHER` | An implementation-reserved element.
    `PACKAGE` | A package.
    `PARAMETER` | A parameter of a method or constructor.
    `RESOURCE_VARIABLE` | A resource variable.
    `STATIC_INIT` | A static initializer.
    `TYPE_PARAMETER` | A type parameter.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isClass()` | Returns `true` if this is a kind of class: either `CLASS` or `ENUM`.
    `boolean` | `isField()` | Returns `true` if this is a kind of field: either `FIELD` or `ENUM_CONSTANT`.
    `boolean` | `isInterface()` | Returns `true` if this is a kind of interface: either `INTERFACE` or `ANNOTATION_TYPE`.
    `static ElementKind` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static ElementKind[]` | `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

    - #### PACKAGE

          public static final ElementKind PACKAGE

      A package.

    - #### ENUM

          public static final ElementKind ENUM

      An enum type.

    - #### CLASS

          public static final ElementKind CLASS

      A class not described by a more specific kind (like `ENUM`).

    - #### ANNOTATION_TYPE

          public static final ElementKind ANNOTATION_TYPE

      An annotation type.

    - #### INTERFACE

          public static final ElementKind INTERFACE

      An interface not described by a more specific kind (like `ANNOTATION_TYPE`).

    - #### ENUM_CONSTANT

          public static final ElementKind ENUM_CONSTANT

      An enum constant.

    - #### FIELD

          public static final ElementKind FIELD

      A field not described by a more specific kind (like `ENUM_CONSTANT`).

    - #### PARAMETER

          public static final ElementKind PARAMETER

      A parameter of a method or constructor.

    - #### LOCAL_VARIABLE

          public static final ElementKind LOCAL_VARIABLE

      A local variable.

    - #### EXCEPTION_PARAMETER

          public static final ElementKind EXCEPTION_PARAMETER

      A parameter of an exception handler.

    - #### METHOD

          public static final ElementKind METHOD

      A method.

    - #### CONSTRUCTOR

          public static final ElementKind CONSTRUCTOR

      A constructor.

    - #### STATIC_INIT

          public static final ElementKind STATIC_INIT

      A static initializer.

    - #### INSTANCE_INIT

          public static final ElementKind INSTANCE_INIT

      An instance initializer.

    - #### TYPE_PARAMETER

          public static final ElementKind TYPE_PARAMETER

      A type parameter.

    - #### OTHER

          public static final ElementKind OTHER

      An implementation-reserved element. This is not the element you are looking for.

    - #### RESOURCE_VARIABLE

          public static final ElementKind RESOURCE_VARIABLE

      A resource variable.
      Since:
        1.7

    - #### MODULE

          public static final ElementKind MODULE

      A module.
      Since:
        9

  - ### Method Detail

    - #### values

          public static ElementKind[] 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 ElementKind 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

    - #### isClass

          public boolean isClass()

      Returns `true` if this is a kind of class: either `CLASS` or `ENUM`.
      Returns:
        `true` if this is a kind of class

    - #### isInterface

          public boolean isInterface()

      Returns `true` if this is a kind of interface: either `INTERFACE` or `ANNOTATION_TYPE`.
      Returns:
        `true` if this is a kind of interface

    - #### isField

          public boolean isField()

      Returns `true` if this is a kind of field: either `FIELD` or `ENUM_CONSTANT`.
      Returns:
        `true` if this is a kind of field