6 データ型
PersistFieldTypesSample.javaの例では、イベントを永続化できるフィールド・タイプを示しますが、そのフィールド・タイプは次のとおりです:
               
- java.lang.String (nullの場合もあります)
- java.lang.Thread (nullの場合もあります)
- java.lang.Class (nullの場合もあります)
- byte
- short
- int
- long
- float
- double
- char
- boolean
ノート:
イベントでは配列はサポートされません。PersistFieldTypesSample.javaの例を次に示します:
               
import jdk.jfr.Event;
import jdk.jfr.Label;
import jdk.jfr.Name;
public class PersistFieldTypesSample {
    @Name("com.oracle.FieldTypes")
    @Label("Allowed Field Types")
    static class FieldTypes extends Event {
        @Label("Class Value")
        Class<?> classValue;
        @Label("Thread Value")
        Thread threadValue; // thread must be started
        @Label("String Value")
        String stringValue;
        @Label("Byte Value")
        byte byteValue;
        @Label("Short Value")
        short shortValue;
        @Label("Int Value")
        int intValue;
        @Label("Long Value")
        long longValue;
        @Label("Float Value")
        float floatValue;
        @Label("Double Value")
        double doubleValue;
        @Label("Character Value")
        char characterValue;
        @Label("Boolean Value")
        boolean booleanValue;
    }
    public static void main(String... args) {
        FieldTypes event = new FieldTypes();
        event.classValue = Math.class;
        event.threadValue = Thread.currentThread();
        event.stringValue = "Hello";
        event.byteValue = 42;
        event.shortValue = 4711;
        event.intValue = Integer.MAX_VALUE;
        event.longValue = Long.MAX_VALUE;
        event.doubleValue = Math.PI;
        event.floatValue = Float.NaN;
        event.characterValue = '!';
        event.booleanValue = true;
        event.commit();
    }
}次のコマンドを使用して、PersistFieldTypesSampleを実行します:
               
java -XX:StartFlightRecording:filename=pft.jfr PersistFieldTypesSample.java
jfr print --events FieldTypes pft.jfr最後のコマンドでは、次のような出力が表示されます:
com.oracle.FieldTypes {
  startTime = 12:33:12.434
  classValue = java.lang.Math (classLoader = bootstrap)
  threadValue = "main" (javaThreadId = 1)
  stringValue = "Hello"
  byteValue = 42
  shortValue = 4711
  intValue = 2147483647
  longValue = 9223372036854775807
  floatValue = N/A
  doubleValue = 3.141592653589793
  characterValue = !
  booleanValue = true
  ...
}