Класс 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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор, предназначенный для вызова конструкторами подклассов; обычно неявный. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final void |
begin() |
Начинает отсчёт времени этого события. |
final void |
commit() |
Записывает значения полей, временную метку и длительность события в систему Flight Recorder. |
final void |
end() |
Завершает отсчёт времени этого события. |
final boolean |
isEnabled() |
Возвращает true, если выполняется хотя бы одна запись и для этого события включён параметр enabled (установлен в true); в противном случае возвращается false. |
final void |
set |
Устанавливает значение поля. |
final boolean |
shouldCommit() |
Возвращает true, если для события включён параметр enabled (установлен в true) и длительность не превышает пороговое значение события; в противном случае возвращает false. |
Подробное описание конструкторов
Event
protected Event()
Подробное описание методов
begin
public final void begin()
end
public final void end()
end необходимо вызывать после метода begin.commit
public final void commit()
Если событие начинается с вызова метода 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или больше либо равно числу полей, заданных для события - См. также:
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jfr/jdk/jfr/Event.html