Interface PermittedSubclassesAttribute

All Superinterfaces:
Attribute<PermittedSubclassesAttribute>, ClassElement, ClassFileElement

public sealed interface PermittedSubclassesAttribute extends Attribute<PermittedSubclassesAttribute>, ClassElement
Models the PermittedSubclasses attribute (JVMS 4.7.31), which indicates this class or interface is sealed, and which classes or interfaces may extend or implement this class or interface.

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 17, major version 61.

See Java Language Specification:
8.1.1.2 sealed, non-sealed, and final Classes
9.1.1.4 sealed and non-sealed Interfaces
See Java Virtual Machine Specification:
4.7.31 The PermittedSubclasses Attribute
Since:
24
See Also:
  • Method Details

    • permittedSubclasses

      List<ClassEntry> permittedSubclasses()
      Returns the list of permitted subclasses or subinterfaces.
      Returns:
      the list of permitted subclasses or subinterfaces
      See Also:
    • of

      static PermittedSubclassesAttribute of(List<ClassEntry> permittedSubclasses)
      Returns a PermittedSubclasses attribute.
      Parameters:
      permittedSubclasses - the permitted subclasses or subinterfaces
      Returns:
      a PermittedSubclasses attribute
    • of

      static PermittedSubclassesAttribute of(ClassEntry... permittedSubclasses)
      Returns a PermittedSubclasses attribute.
      Parameters:
      permittedSubclasses - the permitted subclasses or subinterfaces
      Returns:
      a PermittedSubclasses attribute
    • ofSymbols

      static PermittedSubclassesAttribute ofSymbols(List<ClassDesc> permittedSubclasses)
      Returns a PermittedSubclasses attribute.
      Parameters:
      permittedSubclasses - the permitted subclasses or subinterfaces
      Returns:
      a PermittedSubclasses attribute
      Throws:
      IllegalArgumentException - if any of permittedSubclasses is primitive
    • ofSymbols

      static PermittedSubclassesAttribute ofSymbols(ClassDesc... permittedSubclasses)
      Returns a PermittedSubclasses attribute.
      Parameters:
      permittedSubclasses - the permitted subclasses or subinterfaces
      Returns:
      a PermittedSubclasses attribute
      Throws:
      IllegalArgumentException - if any of permittedSubclasses is primitive