class org.springframework.util.AutoPopulatingList$ReflectiveElementFactory<E> implements org.springframework.util.AutoPopulatingList$ElementFactory<E>, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.util.AutoPopulatingList$ReflectiveElementFactory
  super_class: java.lang.Object
{
  private final java.lang.Class<? extends E> elementClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+TE;>;

  public void <init>(java.lang.Class<? extends E>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.util.AutoPopulatingList$ReflectiveElementFactory this
        start local 1 // java.lang.Class elementClass
         0: .line 286
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 287
            aload 1 /* elementClass */
            ldc "Element class must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 288
            aload 1 /* elementClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: org.springframework.util.AutoPopulatingList$ReflectiveElementFactory java.lang.Class
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ldc "Element class must not be an interface type"
            invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
         5: .line 289
            aload 1 /* elementClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ldc "Element class cannot be an abstract class"
            invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
         8: .line 290
            aload 0 /* this */
            aload 1 /* elementClass */
            putfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
         9: .line 291
            return
        end local 1 // java.lang.Class elementClass
        end local 0 // org.springframework.util.AutoPopulatingList$ReflectiveElementFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/springframework/util/AutoPopulatingList$ReflectiveElementFactory<TE;>;
            0   10     1  elementClass  Ljava/lang/Class<+TE;>;
    Signature: (Ljava/lang/Class<+TE;>;)V
    MethodParameters:
              Name  Flags
      elementClass  

  public E createElement();
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.util.AutoPopulatingList$ReflectiveElementFactory this
        start local 1 // int index
         0: .line 296
            aload 0 /* this */
            getfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 298
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 2 /* ex */
        start local 2 // java.lang.NoSuchMethodException ex
         3: .line 299
            new org.springframework.util.AutoPopulatingList$ElementInstantiationException
            dup
         4: .line 300
            new java.lang.StringBuilder
            dup
            ldc "No default constructor on element class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
         5: .line 299
            invokespecial org.springframework.util.AutoPopulatingList$ElementInstantiationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.NoSuchMethodException ex
         6: .line 302
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 2 /* ex */
        start local 2 // java.lang.InstantiationException ex
         7: .line 303
            new org.springframework.util.AutoPopulatingList$ElementInstantiationException
            dup
         8: .line 304
            new java.lang.StringBuilder
            dup
            ldc "Unable to instantiate element class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
         9: .line 303
            invokespecial org.springframework.util.AutoPopulatingList$ElementInstantiationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.InstantiationException ex
        10: .line 306
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 2 /* ex */
        start local 2 // java.lang.IllegalAccessException ex
        11: .line 307
            new org.springframework.util.AutoPopulatingList$ElementInstantiationException
            dup
        12: .line 308
            new java.lang.StringBuilder
            dup
            ldc "Could not access element constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
        13: .line 307
            invokespecial org.springframework.util.AutoPopulatingList$ElementInstantiationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalAccessException ex
        14: .line 310
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 2 /* ex */
        start local 2 // java.lang.reflect.InvocationTargetException ex
        15: .line 311
            new org.springframework.util.AutoPopulatingList$ElementInstantiationException
            dup
        16: .line 312
            new java.lang.StringBuilder
            dup
            ldc "Failed to invoke element constructor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.util.AutoPopulatingList$ReflectiveElementFactory.elementClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
        17: .line 311
            invokespecial org.springframework.util.AutoPopulatingList$ElementInstantiationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.reflect.InvocationTargetException ex
        end local 1 // int index
        end local 0 // org.springframework.util.AutoPopulatingList$ReflectiveElementFactory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/springframework/util/AutoPopulatingList$ReflectiveElementFactory<TE;>;
            0   18     1  index  I
            3    6     2     ex  Ljava/lang/NoSuchMethodException;
            7   10     2     ex  Ljava/lang/InstantiationException;
           11   14     2     ex  Ljava/lang/IllegalAccessException;
           15   18     2     ex  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
           0     1       6  Class java.lang.InstantiationException
           0     1      10  Class java.lang.IllegalAccessException
           0     1      14  Class java.lang.reflect.InvocationTargetException
    Signature: (I)TE;
    MethodParameters:
       Name  Flags
      index  
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;Lorg/springframework/util/AutoPopulatingList$ElementFactory<TE;>;Ljava/io/Serializable;
SourceFile: "AutoPopulatingList.java"
NestHost: org.springframework.util.AutoPopulatingList
InnerClasses:
  public abstract ElementFactory = org.springframework.util.AutoPopulatingList$ElementFactory of org.springframework.util.AutoPopulatingList
  public ElementInstantiationException = org.springframework.util.AutoPopulatingList$ElementInstantiationException of org.springframework.util.AutoPopulatingList
  private ReflectiveElementFactory = org.springframework.util.AutoPopulatingList$ReflectiveElementFactory of org.springframework.util.AutoPopulatingList