Interface PermittedSubclassesAttribute

All Superinterfaces:
Attribute<PermittedSubclassesAttribute>, ClassElement, ClassFileElement

public sealed interface PermittedSubclassesAttribute extends Attribute<PermittedSubclassesAttribute>, ClassElement
Models the PermittedSubclasses attribute (JVMS ), which indicates this class or interface is
invalid reference
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.

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
      Throws:
      IllegalArgumentException - if the number of permitted subclasses or subinterfaces exceeds the limit of u2
    • of

      static PermittedSubclassesAttribute of(ClassEntry... permittedSubclasses)
      Returns a PermittedSubclasses attribute.
      Parameters:
      permittedSubclasses - the permitted subclasses or subinterfaces
      Returns:
      a PermittedSubclasses attribute
      Throws:
      IllegalArgumentException - if the number of permitted subclasses or subinterfaces exceeds the limit of u2
    • 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, or if the number of permitted subclasses or subinterfaces exceeds the limit of u2
    • 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, or if the number of permitted subclasses or subinterfaces exceeds the limit of u2