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

# 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`

- ## 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

  - ### of

    static NestMembersAttribute of(ClassEntry... nestMembers)
    Returns a `NestMembers` attribute.
    Parameters:
      `nestMembers` - the member classes of the nest
    Returns:
      a `NestMembers` attribute

  - ### 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

  - ### 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