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

## Interface VariableElement

- All Superinterfaces:
    `AnnotatedConstruct`, `Element`

      public interface VariableElement
      extends Element

  Represents a field, `enum` constant, method or constructor parameter, local variable, resource variable, or exception parameter.
  Since:
    1.6

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `getConstantValue()` | Returns the value of this variable if this is a `final` field initialized to a compile-time constant.
    `Element` | `getEnclosingElement()` | Returns the enclosing element of this variable.
    `Name` | `getSimpleName()` | Returns the simple name of this variable element.

    - ### Methods declared in interface javax.lang.model.AnnotatedConstruct

      `getAnnotationsByType`

    - ### Methods declared in interface javax.lang.model.element.Element

      `accept, asType, equals, getAnnotation, getAnnotationMirrors, getEnclosedElements, getKind, getModifiers, hashCode`

- - ### Method Detail

    - #### getConstantValue

          Object getConstantValue()

      Returns the value of this variable if this is a `final` field initialized to a compile-time constant. Returns `null` otherwise. The value will be of a primitive type or a `String`. If the value is of a primitive type, it is wrapped in the appropriate wrapper class (such as `Integer`).

      Note that not all `final` fields will have constant values. In particular, `enum` constants are not considered to be compile-time constants. To have a constant value, a field's type must be either a primitive type or `String`.

      Returns:
        the value of this variable if this is a `final` field initialized to a compile-time constant, or `null` otherwise
      See Also:
        `Elements.getConstantExpression(Object)`
      See The Java™ Language Specification:
        15.28 Constant Expression, 4.12.4 final Variables

    - #### getSimpleName

          Name getSimpleName()

      Returns the simple name of this variable element.

      For method and constructor parameters, the name of each parameter must be distinct from the names of all other parameters of the same executable. If the original source names are not available, an implementation may synthesize names subject to the distinctness requirement above.

      Specified by:
        `getSimpleName` in interface `Element`
      Returns:
        the simple name of this variable element
      See Also:
        `PackageElement.getSimpleName()`, `ExecutableElement.getSimpleName()`, `TypeElement.getSimpleName()`, `getSimpleName()`, `ModuleElement.getSimpleName()`

    - #### getEnclosingElement

          Element getEnclosingElement()

      Returns the enclosing element of this variable. The enclosing element of a method or constructor parameter is the executable declaring the parameter.
      Specified by:
        `getEnclosingElement` in interface `Element`
      Returns:
        the enclosing element of this variable
      See Also:
        `Elements.getPackageOf(javax.lang.model.element.Element)`