public final class com.oracle.svm.util.ReflectionUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.util.ReflectionUtil
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.util.ReflectionUtil this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            return
        end local 0 // com.oracle.svm.util.ReflectionUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/util/ReflectionUtil;

  private static void openModule(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class declaringClass
         0: .line 53
            aload 0 /* declaringClass */
            ldc Lcom/oracle/svm/util/ReflectionUtil;
            invokestatic com.oracle.svm.util.ModuleSupport.openModule:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 54
            return
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  declaringClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      declaringClass  

  public static java.lang.reflect.Method lookupMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Class declaringClass
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 58
            aload 0 /* declaringClass */
            aload 1 /* methodName */
            aload 2 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* result */
        start local 3 // java.lang.reflect.Method result
         1: .line 59
            aload 0 /* declaringClass */
            invokestatic com.oracle.svm.util.ReflectionUtil.openModule:(Ljava/lang/Class;)V
         2: .line 60
            aload 3 /* result */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         3: .line 61
            aload 3 /* result */
         4: areturn
        end local 3 // java.lang.reflect.Method result
         5: .line 62
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* ex */
        start local 3 // java.lang.ReflectiveOperationException ex
         6: .line 63
            new com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
            dup
            aload 3 /* ex */
            invokespecial com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ReflectiveOperationException ex
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  declaringClass  Ljava/lang/Class<*>;
            0    7     1      methodName  Ljava/lang/String;
            0    7     2  parameterTypes  [Ljava/lang/Class;
            1    5     3          result  Ljava/lang/reflect/Method;
            6    7     3              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
                Name  Flags
      declaringClass  
      methodName      
      parameterTypes  

  public static <T> java.lang.reflect.Constructor<T> lookupConstructor(java.lang.Class<T>, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Class declaringClass
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 69
            aload 0 /* declaringClass */
            aload 1 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 2 /* result */
        start local 2 // java.lang.reflect.Constructor result
         1: .line 70
            aload 0 /* declaringClass */
            invokestatic com.oracle.svm.util.ReflectionUtil.openModule:(Ljava/lang/Class;)V
         2: .line 71
            aload 2 /* result */
            iconst_1
            invokevirtual java.lang.reflect.Constructor.setAccessible:(Z)V
         3: .line 72
            aload 2 /* result */
         4: areturn
        end local 2 // java.lang.reflect.Constructor result
         5: .line 73
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* ex */
        start local 2 // java.lang.ReflectiveOperationException ex
         6: .line 74
            new com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
            dup
            aload 2 /* ex */
            invokespecial com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ReflectiveOperationException ex
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  declaringClass  Ljava/lang/Class<TT;>;
            0    7     1  parameterTypes  [Ljava/lang/Class;
            1    5     2          result  Ljava/lang/reflect/Constructor<TT;>;
            6    7     2              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.ReflectiveOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<TT;>;
    MethodParameters:
                Name  Flags
      declaringClass  
      parameterTypes  

  public static <T> T newInstance(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class declaringClass
         0: .line 80
            aload 0 /* declaringClass */
            iconst_0
            anewarray java.lang.Class
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupConstructor:(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 81
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 1 /* ex */
        start local 1 // java.lang.ReflectiveOperationException ex
         3: .line 82
            new com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
            dup
            aload 1 /* ex */
            invokespecial com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ReflectiveOperationException ex
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  declaringClass  Ljava/lang/Class<TT;>;
            3    4     1              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ReflectiveOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                Name  Flags
      declaringClass  

  public static java.lang.reflect.Field lookupField(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Class declaringClass
        start local 1 // java.lang.String fieldName
         0: .line 88
            aload 0 /* declaringClass */
            aload 1 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* result */
        start local 2 // java.lang.reflect.Field result
         1: .line 89
            aload 0 /* declaringClass */
            invokestatic com.oracle.svm.util.ReflectionUtil.openModule:(Ljava/lang/Class;)V
         2: .line 90
            aload 2 /* result */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         3: .line 91
            aload 2 /* result */
         4: areturn
        end local 2 // java.lang.reflect.Field result
         5: .line 92
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* ex */
        start local 2 // java.lang.ReflectiveOperationException ex
         6: .line 93
            new com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
            dup
            aload 2 /* ex */
            invokespecial com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ReflectiveOperationException ex
        end local 1 // java.lang.String fieldName
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  declaringClass  Ljava/lang/Class<*>;
            0    7     1       fieldName  Ljava/lang/String;
            1    5     2          result  Ljava/lang/reflect/Field;
            6    7     2              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/reflect/Field;
    MethodParameters:
                Name  Flags
      declaringClass  
      fieldName       

  public static <T> T readField(java.lang.Class<?>, java.lang.String, );
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Class declaringClass
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object receiver
         0: .line 100
            aload 0 /* declaringClass */
            aload 1 /* fieldName */
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            aload 2 /* receiver */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 101
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* ex */
        start local 3 // java.lang.ReflectiveOperationException ex
         3: .line 102
            new com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
            dup
            aload 3 /* ex */
            invokespecial com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ReflectiveOperationException ex
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.String fieldName
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  declaringClass  Ljava/lang/Class<*>;
            0    4     1       fieldName  Ljava/lang/String;
            0    4     2        receiver  Ljava/lang/Object;
            3    4     3              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ReflectiveOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)TT;
    MethodParameters:
                Name  Flags
      declaringClass  
      fieldName       
      receiver        

  public static <T> T readStaticField(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class declaringClass
        start local 1 // java.lang.String fieldName
         0: .line 107
            aload 0 /* declaringClass */
            aload 1 /* fieldName */
            aconst_null
            invokestatic com.oracle.svm.util.ReflectionUtil.readField:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String fieldName
        end local 0 // java.lang.Class declaringClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  declaringClass  Ljava/lang/Class<*>;
            0    1     1       fieldName  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<*>;Ljava/lang/String;)TT;
    MethodParameters:
                Name  Flags
      declaringClass  
      fieldName       
}
SourceFile: "ReflectionUtil.java"
NestMembers:
  com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
InnerClasses:
  public final ReflectionUtilError = com.oracle.svm.util.ReflectionUtil$ReflectionUtilError of com.oracle.svm.util.ReflectionUtil