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

# Interface SyntheticAttribute

All Superinterfaces:
  `Attribute<SyntheticAttribute>, ClassElement, ClassFileElement, FieldElement, MethodElement`

public sealed interface SyntheticAttribute extends Attribute<SyntheticAttribute>, ClassElement, MethodElement, FieldElement
Models the `Synthetic` attribute (JVMS 4.7.8), which marks a class member as implementation-specific artifacts.

This attribute can appear on classes, methods, and fields, and permits multiple instances in a structure. It has no data dependency.

This attribute was introduced in the Java SE Platform version 1.1, major version 45.

API Note:
  This attribute has been largely superseded by the `ACC_SYNTHETIC` modifier in newer `class` files. See `Elements.Origin` for a more in-depth description about the differences between synthetic and implicit (mandated) constructs generated by compilers.
See Java Virtual Machine Specification:
  4.7.8 The `Synthetic` Attribute
Since:
  24
See Also:
  - `Attributes.synthetic()`
  - `AccessFlag.SYNTHETIC`

- ## Method Summary

  Static Methods
  Modifier and Type
  Method
  Description
  `static SyntheticAttribute`
  `of()`
  Returns a `Synthetic` attribute.

  ### Methods declared in interface Attribute

  `attributeMapper, attributeName`
  Modifier and Type
  Method
  Description
  `AttributeMapper<SyntheticAttribute>`
  `attributeMapper()`
  Returns the `AttributeMapper` associated with this attribute.
  `Utf8Entry`
  `attributeName()`
  Returns the name of the attribute.

- ## Method Details

  - ### of

    static SyntheticAttribute of()
    Returns a `Synthetic` attribute.
    Returns:
      a `Synthetic` attribute