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
`TypeMirror`
`asType()`
Returns the type of this variable.
`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.element.Element

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

## Method Details

### asType

TypeMirror asType()
Returns the type of this variable. Note that the types of variables range over many kinds of types, including primitive types, declared types, and array types, among others.

Specified by:
  `asType` in interface `Element`
Returns:
  the type of this variable
See Also:
  - `TypeKind`

### 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 Java Language Specification:
  15.29 Constant Expressions
  4.12.4 final Variables
See Also:
  - `Elements.getConstantExpression(Object)`

### 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()`
  - `RecordComponentElement.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)`