# Interface NestMembersAttribute

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

public sealed interface NestMembersAttribute extends Attribute<NestMembersAttribute>, ClassElement
Models the `NestMembers` attribute (JVMS 4.7.29), which indicates that this class is the host of a nest and the other nest members.

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 11, major version 55.

See Java Virtual Machine Specification:
  4.7.29 The `NestMembers` Attribute
Since:
  24
See Also:
  - `Attributes.nestMembers()`
  - `NestHostAttribute`
  - `Class.getNestMembers()`
  - `Class.isNestmateOf(Class)`

## Method Summary

Modifier and Type
Method
Description
`List<ClassEntry>`
`nestMembers()`
Returns the classes belonging to the nest hosted by this class.
`static NestMembersAttribute`
`of(ClassEntry... nestMembers)`
Returns a `NestMembers` attribute.
`static NestMembersAttribute`
`of(List<ClassEntry> nestMembers)`
Returns a `NestMembers` attribute.
`static NestMembersAttribute`
`ofSymbols(ClassDesc... nestMembers)`
Returns a `NestMembers` attribute.
`static NestMembersAttribute`
`ofSymbols(List<ClassDesc> nestMembers)`
Returns a `NestMembers` attribute.

### Methods declared in interface Attribute

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

## Method Details

### nestMembers

List<ClassEntry> nestMembers()
Returns the classes belonging to the nest hosted by this class.

Returns:
  the classes belonging to the nest hosted by this class
See Also:
  - `Class.getNestMembers()`

### of

static NestMembersAttribute of(List<ClassEntry> nestMembers)
Returns a `NestMembers` attribute.

Parameters:
  `nestMembers` - the member classes of the nest
Returns:
  a `NestMembers` attribute
Throws:
  `IllegalArgumentException` - if the number of member classes exceeds the limit of `u2`

### of

static NestMembersAttribute of(ClassEntry... nestMembers)
Returns a `NestMembers` attribute.

Parameters:
  `nestMembers` - the member classes of the nest
Returns:
  a `NestMembers` attribute
Throws:
  `IllegalArgumentException` - if the number of member classes exceeds the limit of `u2`

### ofSymbols

static NestMembersAttribute ofSymbols(List<ClassDesc> nestMembers)
Returns a `NestMembers` attribute.

Parameters:
  `nestMembers` - the member classes of the nest
Returns:
  a `NestMembers` attribute
Throws:
  `IllegalArgumentException` - if any of `nestMembers` is primitive, or if the number of member classes exceeds the limit of `u2`

### ofSymbols

static NestMembersAttribute ofSymbols(ClassDesc... nestMembers)
Returns a `NestMembers` attribute.

Parameters:
  `nestMembers` - the member classes of the nest
Returns:
  a `NestMembers` attribute
Throws:
  `IllegalArgumentException` - if any of `nestMembers` is primitive, or if the number of member classes exceeds the limit of `u2`