# 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

### of

static Interfaces of(ClassEntry... interfaces)
Returns an Interfaces element.

Parameters:
  `interfaces` - the interfaces
Returns:
  an Interfaces element

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

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