final class java.lang.invoke.MethodHandleImpl$ArrayAccessor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.lang.invoke.MethodHandleImpl$ArrayAccessor
super_class: java.lang.Object
{
static final int GETTER_INDEX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int SETTER_INDEX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int LENGTH_INDEX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int INDEX_LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final java.lang.ClassValue<java.lang.invoke.MethodHandle[]> TYPED_ACCESSORS;
descriptor: Ljava/lang/ClassValue;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ClassValue<[Ljava/lang/invoke/MethodHandle;>;
static final java.lang.invoke.MethodHandle OBJECT_ARRAY_GETTER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.invoke.MethodHandle OBJECT_ARRAY_SETTER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.lang.invoke.MethodHandle OBJECT_ARRAY_LENGTH;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: ldc Ljava/lang/invoke/MethodHandleImpl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$assertionsDisabled:Z
3: new java.lang.invoke.MethodHandleImpl$ArrayAccessor$1
dup
invokespecial java.lang.invoke.MethodHandleImpl$ArrayAccessor$1.<init>:()V
4: putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.TYPED_ACCESSORS:Ljava/lang/ClassValue;
5: getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.TYPED_ACCESSORS:Ljava/lang/ClassValue;
ldc [Ljava/lang/Object;
invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle[]
astore 0
start local 0 6: aload 0
iconst_0
ldc [Ljava/lang/Object;
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.getAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_LOAD:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
dup
putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_GETTER:Ljava/lang/invoke/MethodHandle;
aastore
7: aload 0
iconst_1
ldc [Ljava/lang/Object;
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.getAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_STORE:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
dup
putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_SETTER:Ljava/lang/invoke/MethodHandle;
aastore
8: aload 0
iconst_2
ldc [Ljava/lang/Object;
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.LENGTH:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.getAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_LENGTH:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
dup
putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_LENGTH:Ljava/lang/invoke/MethodHandle;
aastore
9: getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$assertionsDisabled:Z
ifne 10
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_GETTER:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/MemberName;)Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: java.lang.invoke.MethodHandle[]
StackMap stack:
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$assertionsDisabled:Z
ifne 11
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_SETTER:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/MemberName;)Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$assertionsDisabled:Z
ifne 12
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.OBJECT_ARRAY_LENGTH:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/MemberName;)Z
ifne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 0 12: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
6 12 0 cache [Ljava/lang/invoke/MethodHandle;
void <init>();
descriptor: ()V
flags: (0x0000)
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/invoke/MethodHandleImpl$ArrayAccessor;
static int getElementI(int[], int);
descriptor: ([II)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iaload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [I
0 1 1 i I
MethodParameters:
Name Flags
a
i
static long getElementJ(long[], int);
descriptor: ([JI)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
laload
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [J
0 1 1 i I
MethodParameters:
Name Flags
a
i
static float getElementF(float[], int);
descriptor: ([FI)F
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
faload
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [F
0 1 1 i I
MethodParameters:
Name Flags
a
i
static double getElementD(double[], int);
descriptor: ([DI)D
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
daload
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [D
0 1 1 i I
MethodParameters:
Name Flags
a
i
static boolean getElementZ(boolean[], int);
descriptor: ([ZI)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Z
0 1 1 i I
MethodParameters:
Name Flags
a
i
static byte getElementB(byte[], int);
descriptor: ([BI)B
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [B
0 1 1 i I
MethodParameters:
Name Flags
a
i
static short getElementS(short[], int);
descriptor: ([SI)S
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
saload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [S
0 1 1 i I
MethodParameters:
Name Flags
a
i
static char getElementC(char[], int);
descriptor: ([CI)C
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
caload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [C
0 1 1 i I
MethodParameters:
Name Flags
a
i
static java.lang.Object getElementL(java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Ljava/lang/Object;
0 1 1 i I
MethodParameters:
Name Flags
a
i
static void setElementI(int[], int, int);
descriptor: ([III)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
iastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [I
0 1 1 i I
0 1 2 x I
MethodParameters:
Name Flags
a
i
x
static void setElementJ(long[], int, long);
descriptor: ([JIJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
lload 2
lastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [J
0 1 1 i I
0 1 2 x J
MethodParameters:
Name Flags
a
i
x
static void setElementF(float[], int, float);
descriptor: ([FIF)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
fload 2
fastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [F
0 1 1 i I
0 1 2 x F
MethodParameters:
Name Flags
a
i
x
static void setElementD(double[], int, double);
descriptor: ([DID)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
dload 2
dastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [D
0 1 1 i I
0 1 2 x D
MethodParameters:
Name Flags
a
i
x
static void setElementZ(boolean[], int, boolean);
descriptor: ([ZIZ)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
bastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Z
0 1 1 i I
0 1 2 x Z
MethodParameters:
Name Flags
a
i
x
static void setElementB(byte[], int, byte);
descriptor: ([BIB)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
bastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [B
0 1 1 i I
0 1 2 x B
MethodParameters:
Name Flags
a
i
x
static void setElementS(short[], int, short);
descriptor: ([SIS)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
sastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [S
0 1 1 i I
0 1 2 x S
MethodParameters:
Name Flags
a
i
x
static void setElementC(char[], int, char);
descriptor: ([CIC)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
castore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [C
0 1 1 i I
0 1 2 x C
MethodParameters:
Name Flags
a
i
x
static void setElementL(java.lang.Object[], int, java.lang.Object);
descriptor: ([Ljava/lang/Object;ILjava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
aastore
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Ljava/lang/Object;
0 1 1 i I
0 1 2 x Ljava/lang/Object;
MethodParameters:
Name Flags
a
i
x
static int lengthI(int[]);
descriptor: ([I)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [I
MethodParameters:
Name Flags
a
static int lengthJ(long[]);
descriptor: ([J)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [J
MethodParameters:
Name Flags
a
static int lengthF(float[]);
descriptor: ([F)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [F
MethodParameters:
Name Flags
a
static int lengthD(double[]);
descriptor: ([D)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [D
MethodParameters:
Name Flags
a
static int lengthZ(boolean[]);
descriptor: ([Z)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Z
MethodParameters:
Name Flags
a
static int lengthB(byte[]);
descriptor: ([B)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [B
MethodParameters:
Name Flags
a
static int lengthS(short[]);
descriptor: ([S)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [S
MethodParameters:
Name Flags
a
static int lengthC(char[]);
descriptor: ([C)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [C
MethodParameters:
Name Flags
a
static int lengthL(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a [Ljava/lang/Object;
MethodParameters:
Name Flags
a
static java.lang.String name(java.lang.Class<?>, java.lang.invoke.MethodHandleImpl$ArrayAccess);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
ifnonnull 2
ldc "not an array"
aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals: java.lang.Class
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccess.opName:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokestatic sun.invoke.util.Wrapper.basicTypeChar:(Ljava/lang/Class;)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arrayClass Ljava/lang/Class<*>;
0 3 1 access Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
1 3 2 elemClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/String;
MethodParameters:
Name Flags
arrayClass
access
static java.lang.invoke.MethodType type(java.lang.Class<?>, java.lang.invoke.MethodHandleImpl$ArrayAccess);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 0
astore 3
start local 3 2: aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 5
3: ldc [Ljava/lang/Object;
astore 3
4: ldc Ljava/lang/Object;
astore 2
5: StackMap locals: java.lang.Class java.lang.Class
StackMap stack:
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess:()[I
aload 1
invokevirtual java.lang.invoke.MethodHandleImpl$ArrayAccess.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 6
2: 7
3: 8
default: 9
}
6: StackMap locals:
StackMap stack:
aload 2
aload 3
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
7: StackMap locals:
StackMap stack:
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 3
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
8: StackMap locals:
StackMap stack:
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 3
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
9: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.invoke.MethodHandleImpl.unmatchedArrayAccess:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/InternalError;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 arrayClass Ljava/lang/Class<*>;
0 10 1 access Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
1 10 2 elemClass Ljava/lang/Class<*>;
2 10 3 arrayArgClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
arrayClass
access
static java.lang.invoke.MethodType correctType(java.lang.Class<?>, java.lang.invoke.MethodHandleImpl$ArrayAccess);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
start local 2 1: invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess:()[I
aload 1
invokevirtual java.lang.invoke.MethodHandleImpl$ArrayAccess.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 3
3: 4
default: 5
}
2: StackMap locals: java.lang.Class
StackMap stack:
aload 2
aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
3: StackMap locals:
StackMap stack:
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 0
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
4: StackMap locals:
StackMap stack:
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 0
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.invoke.MethodHandleImpl.unmatchedArrayAccess:(Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/InternalError;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 arrayClass Ljava/lang/Class<*>;
0 6 1 access Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
1 6 2 elemClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
arrayClass
access
static java.lang.invoke.MethodHandle getAccessor(java.lang.Class<?>, java.lang.invoke.MethodHandleImpl$ArrayAccess);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.name:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/String;
astore 2
start local 2 1: aload 0
aload 1
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.type:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
ldc Ljava/lang/invoke/MethodHandleImpl$ArrayAccessor;
aload 2
aload 3
invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
3: areturn
4: StackMap locals: java.lang.Class java.lang.invoke.MethodHandleImpl$ArrayAccess java.lang.String java.lang.invoke.MethodType
StackMap stack: java.lang.ReflectiveOperationException
astore 4
start local 4 5: aload 4
invokestatic java.lang.invoke.MethodHandleStatics.uncaughtException:(Ljava/lang/Throwable;)Ljava/lang/Error;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 arrayClass Ljava/lang/Class<*>;
0 6 1 access Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
1 6 2 name Ljava/lang/String;
2 6 3 type Ljava/lang/invoke/MethodType;
5 6 4 ex Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
2 3 4 Class java.lang.ReflectiveOperationException
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
arrayClass
access
static int[] $SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.invoke.MethodHandleImpl$ArrayAccess.values:()[Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokevirtual java.lang.invoke.MethodHandleImpl$ArrayAccess.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.LENGTH:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokevirtual java.lang.invoke.MethodHandleImpl$ArrayAccess.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokevirtual java.lang.invoke.MethodHandleImpl$ArrayAccess.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic java.lang.invoke.MethodHandleImpl$ArrayAccessor.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$ArrayAccess:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "MethodHandleImpl.java"
NestHost: java.lang.invoke.MethodHandleImpl
InnerClasses:
final ArrayAccess = java.lang.invoke.MethodHandleImpl$ArrayAccess of java.lang.invoke.MethodHandleImpl
final ArrayAccessor = java.lang.invoke.MethodHandleImpl$ArrayAccessor of java.lang.invoke.MethodHandleImpl
java.lang.invoke.MethodHandleImpl$ArrayAccessor$1
final Intrinsic = java.lang.invoke.MethodHandleImpl$Intrinsic of java.lang.invoke.MethodHandleImpl
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles