- 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(); } }イベントが割り当てられ、そのフィールド・メンバーが移入された後は、
#commit()メソッドを使用してFlight Recorderシステムに書き込むことができます。デフォルトでは、イベントは有効です。 イベントを無効にするには、
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を戻した場合は、これらの操作を回避できます。- 導入されたバージョン:
- 9
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedEvent()サブクラス・コンストラクタによる呼出しの場合は、通常は暗黙的コンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidbegin()このイベントのタイミングを開始します。voidcommit()フィールド値、タイムスタンプおよびイベント期間をFlight Recorderシステムに書き込みます。voidend()このイベントのタイミングを終了します。booleanisEnabled()少なくとも1つのレコーディングが実行されている場合はtrueを返し、このイベントの有効な設定をtrueに設定します。そうでない場合はfalseが返されます。voidset(int index, Object value)フィールド値を設定します。booleanshouldCommit()このイベントに対して有効な設定がtrueに設定され、イベントのしきい値内に期間がある場合はtrueを返し、層でない場合は、false。
-
-
-
メソッドの詳細
-
begin
public final void begin()
このイベントのタイミングを開始します。- オーバーライド:
- クラス
jdk.internal.event.Eventのbegin
-
end
public final void end()
このイベントのタイミングを終了します。endメソッドは、beginメソッドの後に呼び出す必要があります。- オーバーライド:
- クラス
jdk.internal.event.Eventのend
-
commit
public final void commit()
フィールド値、タイムスタンプおよびイベント期間をFlight Recorderシステムに書き込みます。イベントが
beginメソッドの呼出しで開始されたが、endメソッドの明示的な呼出しで終わらない場合は、commitメソッドが呼び出されるとイベントが終了します。- オーバーライド:
- クラス
jdk.internal.event.Eventのcommit
-
isEnabled
public final boolean isEnabled()
少なくとも1つのレコーディングが実行されている場合はtrueを返し、このイベントの有効な設定をtrueに設定します。そうでない場合はfalseが返されます。- オーバーライド:
- クラス
jdk.internal.event.EventのisEnabled - 戻り値:
- イベントが有効な場合は
true、それ以外の場合はfalse
-
shouldCommit
public final boolean shouldCommit()
このイベントに対して有効な設定がtrueに設定され、イベントのしきい値内に期間がある場合はtrueを返し、層でない場合は、false。 しきい値は、すべての実行レコーディングの最小しきい値です。- オーバーライド:
- クラス
jdk.internal.event.EventのshouldCommit - 戻り値:
- イベントをFlight Recorderシステムに書き込める場合は
true、そうでない場合はfalse
-
set
public final void set(int index, Object value)フィールド値を設定します。イベントが
EventFactoryクラスを使用して動的に定義される場合にのみ適用されます。指定された
indexは、EventFactoryクラスのファクトリ・メソッドに渡されるValueDescriptorオブジェクトの索引に対応しています。- オーバーライド:
- クラス
jdk.internal.event.Eventのset - パラメータ:
index-EventFactory#create(String, java.util.List, java.util.List)に渡されるフィールドの索引value- 設定する値はnullです- 例外:
UnsupportedOperationException- 動的に生成されたイベントでない場合IndexOutOfBoundsException-indexが0以下、またはイベントに指定されたフィールド数以上であるかどうか- 関連項目:
EventType.getFields(),EventFactory
-
-