Класс Event
- java.lang.Object
-
- jdk.internal.event.Event
-
- jdk.jfr.Event
public abstract class Event extends jdk.internal.event.Event
Базовый класс для событий, который необходимо наследовать для определения событий и их полей.
Следующий пример демонстрирует, как реализовать класс Event.
import jdk.jfr.Event;
import jdk.jfr.Description;
import jdk.jfr.Label;
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() можно использовать для проверки, будет ли экземпляр события фактически записан в систему при вызове метода Event#commit()commit. Если shouldCommit() возвращает false, то эти операции можно избежать.
- Since:
- 9
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | Event() | Единственный конструктор для вызова конструкторами подклассов, обычно неявный. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | begin() | Запускает тайминг этого события. |
void | commit() | Записывает значения полей, временную метку и продолжительность события в систему Flight Recorder. |
void | end() | Заканчивает тайминг этого события. |
boolean | isEnabled() | Возвращает |
void | set(int index,
Object value) | Устанавливает значение поля. |
boolean | shouldCommit() | Возвращает |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitКонструкторы
Event
protected Event()
Единственный конструктор для вызова конструкторами подклассов, обычно неявный.
Методы
begin
public final void begin()
Запускает тайминг этого события.
- Overrides:
beginв классеjdk.internal.event.Event
end
public final void end()
Заканчивает тайминг этого события. Метод end должен быть вызван после метода begin.
- Overrides:
endв классеjdk.internal.event.Event
commit
public final void commit()
Записывает значения полей, временную метку и продолжительность события в систему Flight Recorder.
Если событие начинается с вызова метода begin, но не завершается явным вызовом метода end, то событие завершается при вызове метода commit.
- Overrides:
commitв классеjdk.internal.event.Event
isEnabled
public final boolean isEnabled()
Возвращает true, если хотя бы одна запись выполняется, и флаг включения этого события установлен в true, в противном случае возвращает false.
- Overrides:
isEnabledв классеjdk.internal.event.Event- Returns:
trueесли событие включено,falseв противном случае
shouldCommit
public final boolean shouldCommit()
Возвращает true, если флаг включения этого события установлен в true, и если продолжительность находится в пределах порога для события, в противном случае false. Порог — это минимальный порог для всех выполняемых записей.
- Overrides:
shouldCommitв классеjdk.internal.event.Event- Returns:
trueесли событие может быть записано в систему Flight Recorder,falseв противном случае
set
public final void set(int index,
Object value)Устанавливает значение поля.
Применимо только если событие динамически определено с использованием класса EventFactory.
Передаваемое значение index соответствует индексу объекта ValueDescriptor, переданного в фабричный метод класса EventFactory.
- Overrides:
setв классеjdk.internal.event.Event- Parameters:
index— индекс поля, переданного вEventFactory#create(String, java.util.List, java.util.List)value— значение для установки, может бытьnull- Throws:
UnsupportedOperationException— если это не динамически сгенерированное событиеIndexOutOfBoundsException— еслиindexменьше0или больше или равно количеству полей, указанных для события- See Also:
EventType.getFields(),EventFactory
© 1993, 2020, 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/11/docs/api/jdk.jfr/jdk/jfr/Event.html