# Interface RecordComponentElement

All Superinterfaces:
  `AnnotatedConstruct, Element`

public interface RecordComponentElement extends Element
Represents a record component.

See Java Language Specification:
  8.10.1 Record Components
Since:
  16

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TypeMirror`
  `asType()`
  Returns the type of this record component.
  `ExecutableElement`
  `getAccessor()`
  Returns the executable element for the accessor associated with the given record component.
  `Element`
  `getEnclosingElement()`
  Returns the enclosing element of this record component.
  `Name`
  `getSimpleName()`
  Returns the simple name of this record component.

  ### Methods declared in interface Element

  `accept, equals, getAnnotation, getAnnotationMirrors, getAnnotationsByType, getEnclosedElements, getKind, getModifiers, hashCode`
  Modifier and Type
  Method
  Description
  `<R,P> R`
  `accept(ElementVisitor<R,P> v, P p)`
  Applies a visitor to this element.
  `boolean`
  `equals(Object obj)`
  Returns `true` if the argument represents the same element as `this`, or `false` otherwise.
  `<A extends Annotation>
  A`
  `getAnnotation(Class<A> annotationType)`
  Returns this construct's annotation of the specified type if such an annotation is present, else `null`.
  `List<? extends AnnotationMirror>`
  `getAnnotationMirrors()`
  Returns the annotations that are directly present on this construct.
  `<A extends Annotation>
  A[]`
  `getAnnotationsByType(Class<A> annotationType)`
  Returns annotations of the specified type that are associated with this construct.
  `List<? extends Element>`
  `getEnclosedElements()`
  Returns the elements that are, loosely speaking, directly enclosed by this element.
  `ElementKind`
  `getKind()`
  Returns the `kind` of this element.
  `Set<Modifier>`
  `getModifiers()`
  Returns the modifiers of this element, excluding annotations.
  `int`
  `hashCode()`
  Obeys the general contract of `Object.hashCode`.

- ## Method Details

  - ### asType

    TypeMirror asType()
    Returns the type of this record component. Note that the types of record components range over many kinds of types, including primitive types, declared types, and array types.
    Specified by:
      `asType` in interface `Element`
    Returns:
      the type of this record component
    See Also:
      - `TypeKind`

  - ### getEnclosingElement

    Element getEnclosingElement()
    Returns the enclosing element of this record component. The enclosing element of a record component is the record class declaring the record component.
    Specified by:
      `getEnclosingElement` in interface `Element`
    Returns:
      the enclosing element of this record component
    See Also:
      - `Elements.getPackageOf(Element)`

  - ### getSimpleName

    Name getSimpleName()
    Returns the simple name of this record component.

    The name of each record component must be distinct from the names of all other record components of the same record.

    Specified by:
      `getSimpleName` in interface `Element`
    Returns:
      the simple name of this record component
    See Java Language Specification:
      6.2 Names and Identifiers
    See Also:
      - `PackageElement.getSimpleName()`
      - `ExecutableElement.getSimpleName()`
      - `TypeElement.getSimpleName()`
      - `VariableElement.getSimpleName()`
      - `ModuleElement.getSimpleName()`
      - `getSimpleName()`

  - ### getAccessor

    ExecutableElement getAccessor()
    Returns the executable element for the accessor associated with the given record component.
    Returns:
      the record component accessor.