Enabled (Java SE 23 & JDK 23)
Description: declaration: module: jdk.jfr, package: jdk.jfr, annotation type: Enabled
Keywords: jdk.jfr.Enabled class

# Annotation Interface Enabled

@Target(TYPE) @Retention(RUNTIME) @Inherited public @interface Enabled
Event annotation, determines if an event should be enabled by default.

If an event doesn't have the annotation, then by default the event is enabled.

The following example shows how the `Enabled` annotation can be used to create a disabled event. A disabled event will at most have the overhead of an allocation, or none if the runtime JIT compiler is able to eliminate it.

    @Name("StopWatch")
    @Label("Stop Watch")
    @Category("Debugging")
    @StackTrace(false)
    @Enabled(false)
    public static class StopWatchEvent extends Event {
    }

    public void update() {
        StopWatchEvent e = new StopWatchEvent();
        e.begin();
        ...
        e.commit();
    }

The event can be enabled programmatically, or on command line when needed, for example:

    java -XX:StartFlightRecording:StopWatch#enabled=true ...

Since:
  9

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NAME`
  Setting name `"enabled"`, signifies that the event should be recorded.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `boolean`
  `value`
  Returns `true` if by default the event should be enabled, `false` otherwise.

- ## Field Details

  - ### NAME

    static final String NAME
    Setting name `"enabled"`, signifies that the event should be recorded.
    See Also:
      - Constant Field Values

- ## Element Details

  - ### value

    boolean value
    Returns `true` if by default the event should be enabled, `false` otherwise.
    Returns:
      `true` if by default the event should be enabled by default, `false` otherwise
    Default:
      `true`