public interface org.springframework.core.annotation.MergedAnnotation<A extends java.lang.annotation.Annotation>
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.springframework.core.annotation.MergedAnnotation
  super_class: java.lang.Object
{
  public static final java.lang.String VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "value"

  public abstract java.lang.Class<A> getType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/lang/Class<TA;>;

  public abstract boolean isPresent();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isDirectlyPresent();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isMetaPresent();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getDistance();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getAggregateIndex();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.Object getSource();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract org.springframework.core.annotation.MergedAnnotation<?> getMetaSource();
    descriptor: ()Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lorg/springframework/core/annotation/MergedAnnotation<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract org.springframework.core.annotation.MergedAnnotation<?> getRoot();
    descriptor: ()Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lorg/springframework/core/annotation/MergedAnnotation<*>;

  public abstract java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>> getMetaTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/List<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;

  public abstract boolean hasNonDefaultValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract boolean hasDefaultValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract byte getByte(java.lang.String);
    descriptor: (Ljava/lang/String;)B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract byte[] getByteArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract boolean getBoolean(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract boolean[] getBooleanArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract char getChar(java.lang.String);
    descriptor: (Ljava/lang/String;)C
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract char[] getCharArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[C
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract short getShort(java.lang.String);
    descriptor: (Ljava/lang/String;)S
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract short[] getShortArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[S
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract int getInt(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract int[] getIntArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract long getLong(java.lang.String);
    descriptor: (Ljava/lang/String;)J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract long[] getLongArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract double getDouble(java.lang.String);
    descriptor: (Ljava/lang/String;)D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract double[] getDoubleArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract float getFloat(java.lang.String);
    descriptor: (Ljava/lang/String;)F
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract float[] getFloatArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[F
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract java.lang.String getString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract java.lang.String[] getStringArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract java.lang.Class<?> getClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract java.lang.Class<?>[] getClassArray(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/Class;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: (Ljava/lang/String;)[Ljava/lang/Class<*>;
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract <E extends java.lang.Enum<E>> E getEnum(java.lang.String, java.lang.Class<E>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Enum;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: <E:Ljava/lang/Enum<TE;>;>(Ljava/lang/String;Ljava/lang/Class<TE;>;)TE;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract <E extends java.lang.Enum<E>> E[] getEnumArray(java.lang.String, java.lang.Class<E>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)[Ljava/lang/Enum;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: <E:Ljava/lang/Enum<TE;>;>(Ljava/lang/String;Ljava/lang/Class<TE;>;)[TE;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract <T extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<T> getAnnotation(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)Lorg/springframework/core/annotation/MergedAnnotation<TT;>;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract <T extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<T>[] getAnnotationArray(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)[Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)[Lorg/springframework/core/annotation/MergedAnnotation<TT;>;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract java.util.Optional<java.lang.Object> getValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/Object;>;
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract <T> java.util.Optional<T> getValue(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)Ljava/util/Optional<TT;>;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract java.util.Optional<java.lang.Object> getDefaultValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/Object;>;
    MethodParameters:
               Name  Flags
      attributeName  

  public abstract <T> java.util.Optional<T> getDefaultValue(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)Ljava/util/Optional<TT;>;
    MethodParameters:
               Name  Flags
      attributeName  
      type           

  public abstract org.springframework.core.annotation.MergedAnnotation<A> filterDefaultValues();
    descriptor: ()Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lorg/springframework/core/annotation/MergedAnnotation<TA;>;

  public abstract org.springframework.core.annotation.MergedAnnotation<A> filterAttributes(java.util.function.Predicate<java.lang.String>);
    descriptor: (Ljava/util/function/Predicate;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/function/Predicate<Ljava/lang/String;>;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    MethodParameters:
           Name  Flags
      predicate  

  public abstract org.springframework.core.annotation.MergedAnnotation<A> withNonMergedAttributes();
    descriptor: ()Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lorg/springframework/core/annotation/MergedAnnotation<TA;>;

  public abstract org.springframework.core.annotation.AnnotationAttributes asAnnotationAttributes(org.springframework.core.annotation.MergedAnnotation$Adapt[]);
    descriptor: ([Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)Lorg/springframework/core/annotation/AnnotationAttributes;
    flags: (0x0481) ACC_PUBLIC, ACC_VARARGS, ACC_ABSTRACT
    Signature: ([Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)Lorg/springframework/core/annotation/AnnotationAttributes;
    MethodParameters:
             Name  Flags
      adaptations  

  public abstract java.util.Map<java.lang.String, java.lang.Object> asMap(org.springframework.core.annotation.MergedAnnotation$Adapt[]);
    descriptor: ([Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)Ljava/util/Map;
    flags: (0x0481) ACC_PUBLIC, ACC_VARARGS, ACC_ABSTRACT
    Signature: ([Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
             Name  Flags
      adaptations  

  public abstract <T extends java.util.Map<java.lang.String, java.lang.Object>> T asMap(java.util.function.Function<org.springframework.core.annotation.MergedAnnotation<?>, T>, org.springframework.core.annotation.MergedAnnotation$Adapt[]);
    descriptor: (Ljava/util/function/Function;[Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)Ljava/util/Map;
    flags: (0x0481) ACC_PUBLIC, ACC_VARARGS, ACC_ABSTRACT
    Signature: <T::Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>(Ljava/util/function/Function<Lorg/springframework/core/annotation/MergedAnnotation<*>;TT;>;[Lorg/springframework/core/annotation/MergedAnnotation$Adapt;)TT;
    MethodParameters:
             Name  Flags
      factory      
      adaptations  

  public abstract A synthesize();
    descriptor: ()Ljava/lang/annotation/Annotation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: ()TA;

  public abstract java.util.Optional<A> synthesize(java.util.function.Predicate<? super org.springframework.core.annotation.MergedAnnotation<A>>);
    descriptor: (Ljava/util/function/Predicate;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.NoSuchElementException
    Signature: (Ljava/util/function/Predicate<-Lorg/springframework/core/annotation/MergedAnnotation<TA;>;>;)Ljava/util/Optional<TA;>;
    MethodParameters:
           Name  Flags
      condition  

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> missing();
    descriptor: ()Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 525
            invokestatic org.springframework.core.annotation.MissingMergedAnnotation.getInstance:()Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <A::Ljava/lang/annotation/Annotation;>()Lorg/springframework/core/annotation/MergedAnnotation<TA;>;

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> from(A);
    descriptor: (Ljava/lang/annotation/Annotation;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.annotation.Annotation annotation
         0: .line 535
            aconst_null
            aload 0 /* annotation */
            invokestatic org.springframework.core.annotation.MergedAnnotation.from:(Ljava/lang/Object;Ljava/lang/annotation/Annotation;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 0 // java.lang.annotation.Annotation annotation
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  annotation  TA;
    Signature: <A::Ljava/lang/annotation/Annotation;>(TA;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    MethodParameters:
            Name  Flags
      annotation  

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> from(, A);
    descriptor: (Ljava/lang/Object;Ljava/lang/annotation/Annotation;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object source
        start local 1 // java.lang.annotation.Annotation annotation
         0: .line 548
            aload 0 /* source */
            aload 1 /* annotation */
            invokestatic org.springframework.core.annotation.TypeMappedAnnotation.from:(Ljava/lang/Object;Ljava/lang/annotation/Annotation;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 1 // java.lang.annotation.Annotation annotation
        end local 0 // java.lang.Object source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      source  Ljava/lang/Object;
            0    1     1  annotation  TA;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Object;TA;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
            Name  Flags
      source      
      annotation  

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> of(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class annotationType
         0: .line 559
            aconst_null
            aload 0 /* annotationType */
            aconst_null
            invokestatic org.springframework.core.annotation.MergedAnnotation.of:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 0 // java.lang.Class annotationType
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  annotationType  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    MethodParameters:
                Name  Flags
      annotationType  

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> of(java.lang.Class<A>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class annotationType
        start local 1 // java.util.Map attributes
         0: .line 574
            aconst_null
            aload 0 /* annotationType */
            aload 1 /* attributes */
            invokestatic org.springframework.core.annotation.MergedAnnotation.of:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 1 // java.util.Map attributes
        end local 0 // java.lang.Class annotationType
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  annotationType  Ljava/lang/Class<TA;>;
            0    1     1      attributes  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;Ljava/util/Map<Ljava/lang/String;*>;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      annotationType  
      attributes      

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> of(java.lang.reflect.AnnotatedElement, java.lang.Class<A>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.reflect.AnnotatedElement source
        start local 1 // java.lang.Class annotationType
        start local 2 // java.util.Map attributes
         0: .line 591
            aconst_null
            aload 0 /* source */
            aload 1 /* annotationType */
            aload 2 /* attributes */
            invokestatic org.springframework.core.annotation.MergedAnnotation.of:(Ljava/lang/ClassLoader;Ljava/lang/Object;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 2 // java.util.Map attributes
        end local 1 // java.lang.Class annotationType
        end local 0 // java.lang.reflect.AnnotatedElement source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0          source  Ljava/lang/reflect/AnnotatedElement;
            0    1     1  annotationType  Ljava/lang/Class<TA;>;
            0    1     2      attributes  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<TA;>;Ljava/util/Map<Ljava/lang/String;*>;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      source          
      annotationType  
      attributes      

  public static <A extends java.lang.annotation.Annotation> org.springframework.core.annotation.MergedAnnotation<A> of(java.lang.ClassLoader, , java.lang.Class<A>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Object;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.ClassLoader classLoader
        start local 1 // java.lang.Object source
        start local 2 // java.lang.Class annotationType
        start local 3 // java.util.Map attributes
         0: .line 610
            aload 0 /* classLoader */
            aload 1 /* source */
            aload 2 /* annotationType */
            aload 3 /* attributes */
            invokestatic org.springframework.core.annotation.TypeMappedAnnotation.of:(Ljava/lang/ClassLoader;Ljava/lang/Object;Ljava/lang/Class;Ljava/util/Map;)Lorg/springframework/core/annotation/MergedAnnotation;
            areturn
        end local 3 // java.util.Map attributes
        end local 2 // java.lang.Class annotationType
        end local 1 // java.lang.Object source
        end local 0 // java.lang.ClassLoader classLoader
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0     classLoader  Ljava/lang/ClassLoader;
            0    1     1          source  Ljava/lang/Object;
            0    1     2  annotationType  Ljava/lang/Class<TA;>;
            0    1     3      attributes  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/ClassLoader;Ljava/lang/Object;Ljava/lang/Class<TA;>;Ljava/util/Map<Ljava/lang/String;*>;)Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      classLoader     
      source          
      annotationType  
      attributes      
}
Signature: <A::Ljava/lang/annotation/Annotation;>Ljava/lang/Object;
SourceFile: "MergedAnnotation.java"
NestMembers:
  org.springframework.core.annotation.MergedAnnotation$Adapt
InnerClasses:
  public final Adapt = org.springframework.core.annotation.MergedAnnotation$Adapt of org.springframework.core.annotation.MergedAnnotation