java.lang.Object
jdk.jfr.ValueDescriptor
public final class ValueDescriptor extends Object
イベント・フィールドおよび注釈要素を説明します。
次の例は、ValueDescriptor
クラスを使用して、すべてのタイプのフィールド情報をリストする方法を示しています。
void printTypes() {
Map<String, List<ValueDescriptor>> typeMap = new LinkedHashMap<>();
for (EventType eventType : FlightRecorder.getFlightRecorder().getEventTypes()) {
findTypes(typeMap, eventType.getName(), eventType.getFields());
}
for (String type : typeMap.keySet()) {
System.out.println("Type: " + type);
for (ValueDescriptor field : typeMap.get(type)) {
System.out.println(" Field: " + field.getName());
String arrayBrackets = field.isArray() ? "[]" : "";
System.out.println(" Type: " + field.getTypeName() + arrayBrackets);
if (field.getLabel() != null) {
System.out.println(" Label: " + field.getLabel());
}
if (field.getDescription() != null) {
System.out.println(" Description: " + field.getDescription());
}
if (field.getContentType() != null) {
System.out.println(" Content Types: " + field.getContentType());
}
}
System.out.println();
}
}
void findTypes(Map<String, List<ValueDescriptor>> typeMap, String typeName, List<ValueDescriptor> fields) {
if (!typeMap.containsKey(typeName)) {
typeMap.put(typeName, fields);
for (ValueDescriptor subField : fields) {
findTypes(typeMap, subField.getTypeName(), subField.getFields());
}
}
}
- 導入されたバージョン:
- 9
-
コンストラクタのサマリー
コンストラクタ説明ValueDescriptor
(Class<?> type, String name) イベント型および注釈を動的に作成する場合に役立つ値記述子を構築します。ValueDescriptor
(Class<?> type, String name, List<AnnotationElement> annotations) イベント型および注釈を動的に作成する場合に役立つ値記述子を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明<A extends Annotation>
AgetAnnotation
(Class<A> annotationType) この値記述子(null
)に同じ名前の注釈要素が直接存在する場合は、指定された型の最初の注釈を返します。この値記述子の注釈要素の不変なリストを返します。このValueDescriptor
が表す値の解釈またはフォーマット方法を指定するテキスト識別子を返します。(たとえば、"Maximum throughput in the transaction system. Value is reset after each new batch."
)という値を説明する文を返します。型が複合型の場合は値記述子の不変のリストを返し、それ以外の場合は空のリストを返します。getLabel()
(たとえば、"Maximum Throughput"
)の値を説明する判読可能な名前を返します。getName()
(たとえば、"maxThroughput"
)という値の名前を返します。long
Java仮想マシン(JVM)のタイプの一意のIDを返します。この値記述子に関連付けられている型の完全修飾クラス名を返します。boolean
isArray()
この値記述子が配列型の場合はを返します。
-
コンストラクタの詳細
-
ValueDescriptor
イベント型および注釈を動的に作成する場合に役立つ値記述子を構築します。
次のタイプがサポートされています。
byte.class
short.class
int.class
long.class
char.class
float.class
double.class
boolean.class
String.class
Class.class
Thread.class
名前は有効なJava識別子(たとえば、
"maxThroughput"
)である必要があります。 詳細は、Java言語仕様の3.8および3.9の項を参照してください。- パラメータ:
type
- タイプは、null
ではなくname
-null
ではなく名前- 例外:
IllegalArgumentException
- 名前が有効なJava識別子でない場合SecurityException
- セキュリティ・マネージャが存在し、コール元にFlightRecorderPermission("registerEvent")
がない場合
-
ValueDescriptor
public ValueDescriptor(Class<?> type, String name, List<AnnotationElement> annotations) イベント型および注釈を動的に作成する場合に役立つ値記述子を構築します。
次のタイプがサポートされています。
byte.class
short.class
int.class
long.class
char.class
float.class
double.class
boolean.class
String.class
Class.class
Thread.class
名前は有効なJava識別子(たとえば、
"maxThroughput"
)である必要があります。 詳細は、Java言語仕様の3.8および3.9の項を参照してください。- パラメータ:
type
- タイプは、null
ではなくname
-null
ではなく名前annotations
-null
ではなく、値記述子に関する注釈- 例外:
IllegalArgumentException
- 名前が有効なJava識別子でない場合SecurityException
- セキュリティ・マネージャが存在し、コール元にFlightRecorderPermission("registerEvent")
がない場合
-
-
メソッドの詳細
-
getLabel
public String getLabel()(たとえば、"Maximum Throughput"
)の値を説明する判読可能な名前を返します。- 戻り値:
- 判読可能な名前、または存在しない場合は
null
-
getName
-
getDescription
public String getDescription()(たとえば、"Maximum throughput in the transaction system. Value is reset after each new batch."
)という値を説明する文を返します。- 戻り値:
- 説明(存在しない場合は
null
)
-
getContentType
public String getContentType()このValueDescriptor
が表す値の解釈またはフォーマット方法を指定するテキスト識別子を返します。たとえば、値記述子の型が
float
で、イベント値が0.5f
の場合、"jdk.jfr.Percentage"
のコンテンツ型は、値がパーセンテージであり、"50%"
としてレンダリングする必要があることをクライアントにヒントします。JDKには、次の事前定義済コンテンツ・タイプが用意されています。
- jdk.jfr.Percentage
- jdk.jfr.Timespan
- jdk.jfr.Timestamp
- jdk.jfr.Frequency
- jdk.jfr.Flag
- jdk.jfr.MemoryAddress
- jdk.jfr.DataAmount
- jdk.jfr.NetworkAddress
ユーザー定義コンテンツ・タイプは
ContentType
クラスを使用して作成できます。- 戻り値:
- コンテンツ・タイプ(存在しない場合は
null
) - 関連項目:
-
getTypeName
-
getTypeId
public long getTypeId()Java仮想マシン(JVM)のタイプの一意のIDを返します。 IDがJVMインスタンス間で同じでない可能性があります。- 戻り値:
- 型ID (負ではない)
-
isArray
public boolean isArray()この値記述子が配列型の場合はを返します。- 戻り値:
true
が配列型の場合はfalse
、それ以外の場合はfalse
-
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationType) この値記述子(null
)に同じ名前の注釈要素が直接存在する場合は、指定された型の最初の注釈を返します。- 型パラメータ:
A
- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
annotationType
-null
ではなく、注釈型に対応するクラス・オブジェクト- 戻り値:
- 指定された注釈型に対するこの要素の注釈(直接存在する場合)、それ以外の場合は
null
-
getAnnotationElements
public List<AnnotationElement> getAnnotationElements()この値記述子の注釈要素の不変なリストを返します。- 戻り値:
null
ではなく、注釈のリスト
-
getFields
public List<ValueDescriptor> getFields()型が複合型の場合は値記述子の不変のリストを返し、それ以外の場合は空のリストを返します。- 戻り値:
null
ではなく、値記述子のリスト
-