public final class java.lang.reflect.RecordComponent implements java.lang.reflect.AnnotatedElement
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.lang.reflect.RecordComponent
super_class: java.lang.Object
{
private java.lang.Class<?> clazz;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class<?> type;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
private java.lang.reflect.Method accessor;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
private java.lang.String signature;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private transient sun.reflect.generics.repository.FieldRepository genericInfo;
descriptor: Lsun/reflect/generics/repository/FieldRepository;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private byte[] annotations;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] typeAnnotations;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.lang.reflect.RecordComponent root;
descriptor: Ljava/lang/reflect/RecordComponent;
flags: (0x0002) ACC_PRIVATE
private volatile transient java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.annotation.Annotation> declaredAnnotations;
descriptor: Ljava/util/Map;
flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
Signature: Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.Class<?> getType();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.type:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
Signature: ()Ljava/lang/Class<*>;
public java.lang.String getGenericSignature();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.signature:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.reflect.Type getGenericType();
descriptor: ()Ljava/lang/reflect/Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.RecordComponent.getGenericSignature:()Ljava/lang/String;
ifnull 2
1: aload 0
invokevirtual java.lang.reflect.RecordComponent.getGenericInfo:()Lsun/reflect/generics/repository/FieldRepository;
invokevirtual sun.reflect.generics.repository.FieldRepository.getGenericType:()Ljava/lang/reflect/Type;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.RecordComponent.getType:()Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/reflect/RecordComponent;
private sun.reflect.generics.repository.FieldRepository getGenericInfo();
descriptor: ()Lsun/reflect/generics/repository/FieldRepository;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.genericInfo:Lsun/reflect/generics/repository/FieldRepository;
ifnonnull 2
1: aload 0
aload 0
invokevirtual java.lang.reflect.RecordComponent.getGenericSignature:()Ljava/lang/String;
aload 0
invokevirtual java.lang.reflect.RecordComponent.getFactory:()Lsun/reflect/generics/factory/GenericsFactory;
invokestatic sun.reflect.generics.repository.FieldRepository.make:(Ljava/lang/String;Lsun/reflect/generics/factory/GenericsFactory;)Lsun/reflect/generics/repository/FieldRepository;
putfield java.lang.reflect.RecordComponent.genericInfo:Lsun/reflect/generics/repository/FieldRepository;
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.reflect.RecordComponent.genericInfo:Lsun/reflect/generics/repository/FieldRepository;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/reflect/RecordComponent;
private sun.reflect.generics.factory.GenericsFactory getFactory();
descriptor: ()Lsun/reflect/generics/factory/GenericsFactory;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaringRecord:()Ljava/lang/Class;
astore 1
start local 1 1: aload 1
aload 1
invokestatic sun.reflect.generics.scope.ClassScope.make:(Ljava/lang/Class;)Lsun/reflect/generics/scope/ClassScope;
invokestatic sun.reflect.generics.factory.CoreReflectionFactory.make:(Ljava/lang/reflect/GenericDeclaration;Lsun/reflect/generics/scope/Scope;)Lsun/reflect/generics/factory/CoreReflectionFactory;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/reflect/RecordComponent;
1 2 1 c Ljava/lang/Class<*>;
public java.lang.reflect.AnnotatedType getAnnotatedType();
descriptor: ()Ljava/lang/reflect/AnnotatedType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.typeAnnotations:[B
1: invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
2: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaringRecord:()Ljava/lang/Class;
invokeinterface jdk.internal.access.JavaLangAccess.getConstantPool:(Ljava/lang/Class;)Ljdk/internal/reflect/ConstantPool;
3: aload 0
4: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaringRecord:()Ljava/lang/Class;
5: aload 0
invokevirtual java.lang.reflect.RecordComponent.getGenericType:()Ljava/lang/reflect/Type;
6: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.FIELD:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
7: invokestatic sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedType:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/lang/reflect/AnnotatedType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.reflect.Method getAccessor();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.accessor:Ljava/lang/reflect/Method;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
aload 0
invokevirtual java.lang.reflect.RecordComponent.declaredAnnotations:()Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/reflect/RecordComponent;
0 2 1 annotationClass Ljava/lang/Class<TT;>;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
annotationClass
private java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.annotation.Annotation> declaredAnnotations();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.declaredAnnotations:Ljava/util/Map;
dup
astore 1
start local 1 1: ifnonnull 18
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield java.lang.reflect.RecordComponent.declaredAnnotations:Ljava/util/Map;
dup
astore 1
ifnonnull 14
4: aload 0
getfield java.lang.reflect.RecordComponent.root:Ljava/lang/reflect/RecordComponent;
astore 3
start local 3 5: aload 3
ifnull 8
6: aload 3
invokevirtual java.lang.reflect.RecordComponent.declaredAnnotations:()Ljava/util/Map;
astore 1
7: goto 13
8: StackMap locals: java.util.Map java.lang.reflect.RecordComponent java.lang.reflect.RecordComponent
StackMap stack:
aload 0
getfield java.lang.reflect.RecordComponent.annotations:[B
9: invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
10: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaringRecord:()Ljava/lang/Class;
invokeinterface jdk.internal.access.JavaLangAccess.getConstantPool:(Ljava/lang/Class;)Ljdk/internal/reflect/ConstantPool;
11: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaringRecord:()Ljava/lang/Class;
12: invokestatic sun.reflect.annotation.AnnotationParser.parseAnnotations:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
astore 1
13: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield java.lang.reflect.RecordComponent.declaredAnnotations:Ljava/util/Map;
end local 3 14: StackMap locals:
StackMap stack:
aload 2
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/lang/reflect/RecordComponent;
1 19 1 declAnnos Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
5 14 3 root Ljava/lang/reflect/RecordComponent;
Exception table:
from to target type
3 15 16 any
16 17 16 any
Signature: ()Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
public java.lang.annotation.Annotation[] getAnnotations();
descriptor: ()[Ljava/lang/annotation/Annotation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.RecordComponent.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.annotation.Annotation[] getDeclaredAnnotations();
descriptor: ()[Ljava/lang/annotation/Annotation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.RecordComponent.declaredAnnotations:()Ljava/util/Map;
invokestatic sun.reflect.annotation.AnnotationParser.toArray:(Ljava/util/Map;)[Ljava/lang/annotation/Annotation;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.reflect.RecordComponent.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.reflect.RecordComponent.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
public java.lang.Class<?> getDeclaringRecord();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.reflect.RecordComponent.clazz:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/reflect/RecordComponent;
Signature: ()Ljava/lang/Class<*>;
}
SourceFile: "RecordComponent.java"
InnerClasses:
public final Feature = jdk.internal.PreviewFeature$Feature of jdk.internal.PreviewFeature
public final TypeAnnotationTarget = sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget of sun.reflect.annotation.TypeAnnotation
RuntimeInvisibleAnnotations:
jdk.internal.PreviewFeature(feature = jdk.internal.PreviewFeature$Feature.RECORDS:Ljdk/internal/PreviewFeature$Feature;, essentialAPI = false)