Interfaces (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile, interface: Interfaces
Keywords: java.lang.classfile.Interfaces interface

# Interface Interfaces

All Superinterfaces:
  `ClassElement, ClassFileElement`

public sealed interface Interfaces extends ClassElement
Models the interfaces (JVMS 4.1) of a class. An `Interfaces` appears at most once in a `ClassModel`: if it does not appear, the class has no interfaces, which is equivalent to an `Interfaces` whose `interfaces()` returns an empty list. A `ClassBuilder` sets the interfaces to an empty list if the interfaces is not supplied.

See Java Virtual Machine Specification:
  4.1 The `ClassFile` Structure
Since:
  24
See Also:
  - `ClassModel.interfaces()`
  - `ClassBuilder.withInterfaces(List)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<ClassEntry>`
  `interfaces()`
  Returns the interfaces of this class, may be empty.
  `static Interfaces`
  `of(ClassEntry... interfaces)`
  Returns an Interfaces element.
  `static Interfaces`
  `of(List<ClassEntry> interfaces)`
  Returns an Interfaces element.
  `static Interfaces`
  `ofSymbols(ClassDesc... interfaces)`
  Returns an Interfaces element.
  `static Interfaces`
  `ofSymbols(List<ClassDesc> interfaces)`
  Returns an Interfaces element.

- ## Method Details

  - ### interfaces

    List<ClassEntry> interfaces()
    Returns the interfaces of this class, may be empty.
    Returns:
      the interfaces of this class, may be empty

  - ### of

    static Interfaces of(List<ClassEntry> interfaces)
    Returns an Interfaces element.
    Parameters:
      `interfaces` - the interfaces
    Returns:
      an Interfaces element
    Throws:
      `IllegalArgumentException` - if the number of interfaces exceeds the limit of `u2`

  - ### of

    static Interfaces of(ClassEntry... interfaces)
    Returns an Interfaces element.
    Parameters:
      `interfaces` - the interfaces
    Returns:
      an Interfaces element
    Throws:
      `IllegalArgumentException` - if the number of interfaces exceeds the limit of `u2`

  - ### ofSymbols

    static Interfaces ofSymbols(List<ClassDesc> interfaces)
    Returns an Interfaces element.
    Parameters:
      `interfaces` - the interfaces
    Returns:
      an Interfaces element
    Throws:
      `IllegalArgumentException` - if any of `interfaces` is primitive, or if the number of interfaces exceeds the limit of `u2`

  - ### ofSymbols

    static Interfaces ofSymbols(ClassDesc... interfaces)
    Returns an Interfaces element.
    Parameters:
      `interfaces` - the interfaces
    Returns:
      an Interfaces element
    Throws:
      `IllegalArgumentException` - if any of `interfaces` is primitive, or if the number of interfaces exceeds the limit of `u2`