RecordAttribute (Java SE 22 & JDK 22)
Description: declaration: module: java.base, package: java.lang.classfile.attribute, interface: RecordAttribute
Keywords: java.lang.classfile.attribute.RecordAttribute interface

Module java.base
Package java.lang.classfile.attributePREVIEW

# Interface RecordAttribute

All Superinterfaces:
  `AttributePREVIEW<RecordAttributePREVIEW>`, `ClassElementPREVIEW`, `ClassFileElementPREVIEW`, `WritableElementPREVIEW<RecordAttributePREVIEW>`

public sealed interface RecordAttribute extends AttributePREVIEW<RecordAttributePREVIEW>, ClassElementPREVIEW
`RecordAttribute` is a preview API of the Java platform.
Programs can only use `RecordAttribute` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
Models the `Record` attribute 4.7.30, which can appear on classes to indicate that this class is a record class. Delivered as a `ClassElement`PREVIEW when traversing the elements of a `ClassModel`PREVIEW.

The attribute does not permit multiple instances in a given location. Subsequent occurrence of the attribute takes precedence during the attributed element build or transformation.

The attribute was introduced in the Java SE Platform version 16.

Since:
  22

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<RecordComponentInfoPREVIEW>`
  `components()`
  Returns the components of this record class.
  `static RecordAttributePREVIEW`
  `of(RecordComponentInfoPREVIEW... components)`
  Returns a `Record` attribute.
  `static RecordAttributePREVIEW`
  `of(List<RecordComponentInfoPREVIEW> components)`
  Returns a `Record` attribute.

  ### Methods declared in interface java.lang.classfile.AttributePREVIEW

  `attributeMapper, attributeName`

  ### Methods declared in interface java.lang.classfile.WritableElementPREVIEW

  `writeTo`

- ## Method Details

  - ### components

    List<RecordComponentInfoPREVIEW> components()
    Returns the components of this record class.
    Returns:
      the components of this record class

  - ### of

    static RecordAttributePREVIEW of(List<RecordComponentInfoPREVIEW> components)
    Returns a `Record` attribute.
    Parameters:
      `components` - the record components
    Returns:
      a `Record` attribute

  - ### of

    static RecordAttributePREVIEW of(RecordComponentInfoPREVIEW... components)
    Returns a `Record` attribute.
    Parameters:
      `components` - the record components
    Returns:
      a `Record` attribute