Module java.base
Package java.lang.classfile.attribute

# Interface SyntheticAttribute

≠
public abstract sealed interface SyntheticAttribute
extends java.lang.classfile.Attribute<java.lang.classfile.attribute.SyntheticAttribute>, java.lang.classfile.ClassElement, java.lang.classfile.FieldElement, java.lang.classfile.MethodElement
permits jdk.internal.classfile.impl.BoundAttribute.BoundSyntheticAttribute, jdk.internal.classfile.impl.UnboundAttribute.UnboundSyntheticAttribute
Comparing jdk-master and valhalla-csr-open

All Superinterfaces:
  `AttributePREVIEW <SyntheticAttribute>, ClassElementPREVIEW , ClassFileElement, FieldElement, MethodElement`

public sealed interface SyntheticAttribute extends AttributePREVIEW <SyntheticAttribute>, ClassElementPREVIEW , 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`

## Methods

- =
  public static java.lang.classfile.attribute.SyntheticAttribute of()

## Summary

Differences
| Elements | Comments | Descriptions | Total
Added | Changed | Removed | Added | Changed | Removed | Added | Changed | Removed
--- | --- | --- | --- | --- | --- | --- | --- | ---
SyntheticAttribute |  |  |  |  |  |  | 4 |  |  | 4
Total |  |  |  |  |  |  | 4 |  |  | 4