Spec-Zone.ru › OpenJDK 27

Класс Event

java.lang.Object
jdk.jfr.Event
public abstract class Event extends Object
Базовый класс событий, от которого следует наследоваться для определения событий и их полей.

В следующем примере показано, как реализовать класс Event.

public class Example {

    @Label("Hello World")
    @Description("Helps programmer getting started")
    static class HelloWorld extends Event {
        @Label("Message")
        String message;
    }

    public static void main(String... args) {
        HelloWorld event = new HelloWorld();
        event.message = "hello, world!";
        event.commit();
    }
}

После создания события и заполнения его полей его можно записать в систему Flight Recorder с помощью метода commit().

По умолчанию событие включено. Чтобы отключить событие, снабдите класс Event аннотацией @Enabled(false).

Поддерживаются следующие примитивные типы Java: boolean, char, byte, short, int, long, float и double. Поддерживаются следующие ссылочные типы: String, Thread и Class. Массивы, перечисления и другие ссылочные типы игнорируются без уведомления и не включаются. Поля поддерживаемых типов можно исключить с помощью модификатора transient. Статические поля, даже поддерживаемых типов, не включаются.

Аннотации позволяют инструментам наглядно визуализировать данные (например, Label, Description и Timespan). Аннотации, применённые к классу Event или его полям, включаются, если они присутствуют (косвенно, напрямую или ассоциированно), имеют аннотацию MetadataDefinition и не содержат перечислений, массивов или классов.

Сбор данных для сохранения в событии может быть затратным. Метод shouldCommit() можно использовать, чтобы проверить, будет ли экземпляр события фактически записан в систему при вызове метода commit(). Если shouldCommit() возвращает false, эти операции можно пропустить.

С момента:
9

Краткое описание конструкторов

Event()
Модификатор Конструктор Описание
protected
Единственный конструктор, предназначенный для вызова конструкторами подклассов; обычно неявный.

Краткое описание методов

Модификатор и тип Метод Описание
final void begin()
Запускает отсчёт времени для этого события.
final void commit()
Записывает значения полей, временную метку и длительность события в систему Flight Recorder.
final void end()
Завершает отсчёт времени для этого события.
final boolean isEnabled()
Возвращает true, если выполняется хотя бы одна запись и для этого события задан параметр enabled со значением true; в противном случае возвращается false.
final void set(int index, Object value)
Задаёт значение поля.
final boolean shouldCommit()
Возвращает true, если для этого события задан параметр enabled со значением true и длительность не превышает пороговое значение события; в противном случае возвращается false.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело и подлежит удалению: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определённого времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определённого времени.

Подробное описание конструкторов

Event

protected Event()
Единственный конструктор, предназначенный для вызова конструкторами подклассов; обычно неявный.

Подробное описание методов

begin

public final void begin()
Запускает отсчёт времени для этого события.

end

public final void end()
Завершает отсчёт времени для этого события. Метод end необходимо вызвать после метода begin.

commit

public final void commit()
Записывает значения полей, временную метку и длительность события в систему Flight Recorder.

Если событие начинается с вызова метода begin, но не завершается явным вызовом метода end, то событие завершается при вызове метода commit.

isEnabled

public final boolean isEnabled()
Возвращает true, если выполняется хотя бы одна запись и для этого события задан параметр enabled со значением true; в противном случае возвращается false.
Возвращает:
true, если событие включено; в противном случае false

shouldCommit

public final boolean shouldCommit()
Возвращает true, если для этого события задан параметр enabled со значением true и длительность не превышает пороговое значение события; в противном случае возвращается false. Пороговое значение — это минимальный порог среди всех выполняющихся записей.
Возвращает:
true, если событие может быть записано в систему Flight Recorder; в противном случае false

set

public final void set(int index, Object value)
Задаёт значение поля.

Применимо только в том случае, если событие динамически определено с помощью класса EventFactory.

Переданное значение index соответствует индексу объекта ValueDescriptor, переданного фабричному методу класса EventFactory.

Параметры:
index — индекс поля, передаваемый в EventFactory.create(java.util.List, java.util.List)
value — задаваемое значение; может быть null
Вызывает исключение:
UnsupportedOperationException — если событие не является динамически созданным
IndexOutOfBoundsException — если index меньше 0 или больше либо равно количеству полей, заданных для события
См. также:
  • EventType.getFields()
  • EventFactory

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, способы обхода ограничений и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API