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

# Interface SourceDebugExtensionAttribute

All Superinterfaces:
  `Attribute<SourceDebugExtensionAttribute>, ClassElement, ClassFileElement`

public sealed interface SourceDebugExtensionAttribute extends Attribute<SourceDebugExtensionAttribute>, ClassElement
Models the `SourceDebugExtension` attribute (JVMS 4.7.11), which stores arbitrary modified UTF-8 data.

This attribute only appears on classes, and does not permit multiple instances in a class. It has no data dependency.

The attribute was introduced in the Java SE Platform version 5.0, major version 49.

See Java Virtual Machine Specification:
  4.7.11 The `SourceDebugExtension` Attribute
Since:
  24
See Also:
  - `Attributes.sourceDebugExtension()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte[]`
  `contents()`
  Returns the debug extension payload.
  `static SourceDebugExtensionAttribute`
  `of(byte[] contents)`
  Returns a `SourceDebugExtension` attribute.

  ### Methods declared in interface Attribute

  `attributeMapper, attributeName`

- ## Method Details

  - ### contents

    byte[] contents()
    Returns the debug extension payload. The payload may denote a string longer than that which can be represented with a `String`.
    Returns:
      the debug extension payload

  - ### of

    static SourceDebugExtensionAttribute of(byte[] contents)
    Returns a `SourceDebugExtension` attribute.
    Parameters:
      `contents` - the extension contents
    Returns:
      a `SourceDebugExtension` attribute