# Interface RecordAttribute

All Superinterfaces:
  `Attribute<RecordAttribute>, ClassElement, ClassFileElement`

public sealed interface RecordAttribute extends Attribute<RecordAttribute>, ClassElement
Models the `Record` attribute (JVMS §4.7.30), which indicates that this class is a record class and the record components.

This attribute only appears on classes, and does not permit multiple instances in a class. It has a data dependency on the constant pool.

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

See Java Virtual Machine Specification:
  4.7.30 The `Record` Attribute
Since:
  24
See Also:
  - `Attributes.record()`
  - `Class.isRecord()`
  - `Class.getRecordComponents()`

## Method Summary

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

### Methods declared in interface Attribute

`attributeMapper, attributeName`
Modifier and Type
Method
Description
`AttributeMapper<RecordAttribute>`
`attributeMapper()`
Returns the `AttributeMapper` associated with this attribute.
`Utf8Entry`
`attributeName()`
Returns the name of the attribute.

## Method Details

### components

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

Returns:
  the components of this record class
See Also:
  - `Class.getRecordComponents()`

### of

static RecordAttribute of(List<RecordComponentInfo> components)
Returns a `Record` attribute.

Parameters:
  `components` - the record components
Returns:
  a `Record` attribute
Throws:
  `IllegalArgumentException` - if the number of record components exceeds the limit of `u2`

### of

static RecordAttribute of(RecordComponentInfo... components)
Returns a `Record` attribute.

Parameters:
  `components` - the record components
Returns:
  a `Record` attribute
Throws:
  `IllegalArgumentException` - if the number of record components exceeds the limit of `u2`