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

# Interface ModuleTargetAttribute

All Superinterfaces:
  `AttributePREVIEW<ModuleTargetAttributePREVIEW>`, `ClassElementPREVIEW`, `ClassFileElementPREVIEW`, `WritableElementPREVIEW<ModuleTargetAttributePREVIEW>`

public sealed interface ModuleTargetAttribute extends AttributePREVIEW<ModuleTargetAttributePREVIEW>, ClassElementPREVIEW
`ModuleTargetAttribute` is a preview API of the Java platform.
Programs can only use `ModuleTargetAttribute` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
Models the `ModuleTarget` attribute, which can appear on classes that represent module descriptors. This is a JDK-specific attribute, which captures constraints on the target platform. Delivered as a `ClassElement`PREVIEW when traversing the elements of a `ClassModel`PREVIEW.

The specification of the `ModuleTarget` attribute is:

     TargetPlatform_attribute {
       // index to CONSTANT_utf8_info structure in constant pool representing
       // the string "ModuleTarget"
       u2 attribute_name_index;
       u4 attribute_length;

       // index to CONSTANT_utf8_info structure with the target platform
       u2 target_platform_index;
     }

The attribute does not permit multiple instances in a given location. Subsequent occurrence of the attribute takes precedence during the attributed element build or transformation.

Since:
  22

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ModuleTargetAttributePREVIEW`
  `of(Utf8EntryPREVIEW targetPlatform)`
  Returns a `ModuleTarget` attribute.
  `static ModuleTargetAttributePREVIEW`
  `of(String targetPlatform)`
  Returns a `ModuleTarget` attribute.
  `Utf8EntryPREVIEW`
  `targetPlatform()`
  Returns the target platform.

  ### Methods declared in interface java.lang.classfile.AttributePREVIEW

  `attributeMapper, attributeName`

  ### Methods declared in interface java.lang.classfile.WritableElementPREVIEW

  `writeTo`

- ## Method Details

  - ### targetPlatform

    Utf8EntryPREVIEW targetPlatform()
    Returns the target platform.
    Returns:
      the target platform

  - ### of

    static ModuleTargetAttributePREVIEW of(String targetPlatform)
    Returns a `ModuleTarget` attribute.
    Parameters:
      `targetPlatform` - the target platform
    Returns:
      a `ModuleTarget` attribute

  - ### of

    static ModuleTargetAttributePREVIEW of(Utf8EntryPREVIEW targetPlatform)
    Returns a `ModuleTarget` attribute.
    Parameters:
      `targetPlatform` - the target platform
    Returns:
      a `ModuleTarget` attribute