# Interface ModuleTargetAttribute

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

public sealed interface ModuleTargetAttribute extends Attribute<ModuleTargetAttribute>, ClassElement
Models the `ModuleTarget` attribute, which can appear on classes that represent module descriptors, to represent constraints on the target platform.

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;
    }

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

This attribute is not predefined in the Java SE Platform. This is a JDK-specific nonstandard attribute produced by the `jdk.jlink` module, which defines the `jlink` and `jmod` tools.

Since:
  24
See Also:
  - `Attributes.moduleTarget()`
  - `ModuleHashesAttribute`
  - `ModuleResolutionAttribute`

- ## Method Summary

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

  ### Methods declared in interface Attribute

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

- ## Method Details

  - ### targetPlatform

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

  - ### of

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

  - ### of

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