public interface java.lang.reflect.AnnotatedElement
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: java.lang.reflect.AnnotatedElement
  super_class: java.lang.Object
{
  public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.reflect.AnnotatedElement this
        start local 1 // java.lang.Class annotationClass
         0: .line 274
            aload 0 /* this */
            aload 1 /* annotationClass */
            invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.reflect.AnnotatedElement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Ljava/lang/reflect/AnnotatedElement;
            0    2     1  annotationClass  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
                 Name  Flags
      annotationClass  

  public abstract <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public abstract java.lang.annotation.Annotation[] getAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.reflect.AnnotatedElement this
        start local 1 // java.lang.Class annotationClass
         0: .line 348
            aload 0 /* this */
            aload 1 /* annotationClass */
            invokeinterface java.lang.reflect.AnnotatedElement.getDeclaredAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            astore 2 /* result */
        start local 2 // java.lang.annotation.Annotation[] result
         1: .line 350
            aload 2 /* result */
            arraylength
            ifne 7
         2: .line 351
            aload 0 /* this */
            instanceof java.lang.Class
            ifeq 7
         3: .line 352
            aload 1 /* annotationClass */
            invokestatic sun.reflect.annotation.AnnotationType.getInstance:(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;
            invokevirtual sun.reflect.annotation.AnnotationType.isInherited:()Z
            ifeq 7
         4: .line 353
            aload 0 /* this */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 3 /* superClass */
        start local 3 // java.lang.Class superClass
         5: .line 354
            aload 3 /* superClass */
            ifnull 7
         6: .line 357
            aload 3 /* superClass */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            astore 2 /* result */
        end local 3 // java.lang.Class superClass
         7: .line 361
      StackMap locals: java.lang.annotation.Annotation[]
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.annotation.Annotation[] result
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.reflect.AnnotatedElement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Ljava/lang/reflect/AnnotatedElement;
            0    8     1  annotationClass  Ljava/lang/Class<TT;>;
            1    8     2           result  [Ljava/lang/annotation/Annotation;
            5    7     3       superClass  Ljava/lang/Class<*>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)[TT;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.reflect.AnnotatedElement this
        start local 1 // java.lang.Class annotationClass
         0: .line 385
            aload 1 /* annotationClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 387
            aload 0 /* this */
            invokeinterface java.lang.reflect.AnnotatedElement.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: java.lang.reflect.AnnotatedElement java.lang.Class top int int java.lang.annotation.Annotation[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* annotation */
        start local 2 // java.lang.annotation.Annotation annotation
         3: .line 388
            aload 1 /* annotationClass */
            aload 2 /* annotation */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 391
            aload 1 /* annotationClass */
            aload 2 /* annotation */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            areturn
        end local 2 // java.lang.annotation.Annotation annotation
         5: .line 387
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 394
            aconst_null
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.reflect.AnnotatedElement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Ljava/lang/reflect/AnnotatedElement;
            0    8     1  annotationClass  Ljava/lang/Class<TT;>;
            3    5     2       annotation  Ljava/lang/annotation/Annotation;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.reflect.AnnotatedElement this
        start local 1 // java.lang.Class annotationClass
         0: .line 442
            aload 1 /* annotationClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 444
            aload 0 /* this */
            invokeinterface java.lang.reflect.AnnotatedElement.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 445
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/annotation/Annotation.annotationType()Ljava/lang/Class; (9 itf)
                  (Ljava/lang/annotation/Annotation;)Ljava/lang/Class;
         3: .line 446
            invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
         4: .line 447
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/reflect/AnnotatedElement.lambda$1(Ljava/lang/annotation/Annotation;Ljava/lang/annotation/Annotation;)Ljava/lang/annotation/Annotation; (6 itf)
                  (Ljava/lang/annotation/Annotation;Ljava/lang/annotation/Annotation;)Ljava/lang/annotation/Annotation;
         5: .line 448
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/util/LinkedHashMap.<init>()V (8)
                  ()Ljava/util/LinkedHashMap;
         6: .line 445
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         7: .line 449
            aload 1 /* annotationClass */
         8: .line 444
            invokestatic sun.reflect.annotation.AnnotationSupport.getDirectlyAndIndirectlyPresent:(Ljava/util/Map;Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
         9: .line 443
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.reflect.AnnotatedElement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Ljava/lang/reflect/AnnotatedElement;
            0   10     1  annotationClass  Ljava/lang/Class<TT;>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;)[TT;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public abstract java.lang.annotation.Annotation[] getDeclaredAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  private static java.lang.annotation.Annotation lambda$1(java.lang.annotation.Annotation, java.lang.annotation.Annotation);
    descriptor: (Ljava/lang/annotation/Annotation;Ljava/lang/annotation/Annotation;)Ljava/lang/annotation/Annotation;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.annotation.Annotation first
        start local 1 // java.lang.annotation.Annotation second
         0: .line 447
            aload 0 /* first */
            areturn
        end local 1 // java.lang.annotation.Annotation second
        end local 0 // java.lang.annotation.Annotation first
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   first  Ljava/lang/annotation/Annotation;
            0    1     1  second  Ljava/lang/annotation/Annotation;
}
SourceFile: "AnnotatedElement.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles