public final class org.eclipse.collections.impl.utility.internal.ReflectionHelper
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.eclipse.collections.impl.utility.internal.ReflectionHelper
super_class: java.lang.Object
{
public static final java.lang.Class[] EMPTY_CLASS_ARRAY;
descriptor: [Ljava/lang/Class;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
RuntimeVisibleAnnotations:
java.lang.Deprecated()
private static final org.eclipse.collections.api.map.ImmutableMap<java.lang.Class<?>, java.lang.Class<?>> WRAPPER_TO_PRIMATIVES;
descriptor: Lorg/eclipse/collections/api/map/ImmutableMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/eclipse/collections/api/map/ImmutableMap<Ljava/lang/Class<*>;Ljava/lang/Class<*>;>;
private static final org.eclipse.collections.api.map.ImmutableMap<java.lang.Class<?>, java.lang.Class<?>> PRIMATIVES_TO_WRAPPERS;
descriptor: Lorg/eclipse/collections/api/map/ImmutableMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/eclipse/collections/api/map/ImmutableMap<Ljava/lang/Class<*>;Ljava/lang/Class<*>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: iconst_0
anewarray java.lang.Class
putstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
1: bipush 8
anewarray org.eclipse.collections.api.tuple.Pair
dup
iconst_0
2: ldc Ljava/lang/Short;
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
iconst_1
3: ldc Ljava/lang/Boolean;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
iconst_2
4: ldc Ljava/lang/Byte;
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
iconst_3
5: ldc Ljava/lang/Character;
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
iconst_4
6: ldc Ljava/lang/Integer;
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
iconst_5
7: ldc Ljava/lang/Float;
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
bipush 6
8: ldc Ljava/lang/Long;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
dup
bipush 7
9: ldc Ljava/lang/Double;
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
invokestatic org.eclipse.collections.impl.tuple.Tuples.twin:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/eclipse/collections/api/tuple/Twin;
aastore
10: invokestatic org.eclipse.collections.impl.map.mutable.UnifiedMap.newMapWith:([Lorg/eclipse/collections/api/tuple/Pair;)Lorg/eclipse/collections/impl/map/mutable/UnifiedMap;
11: invokevirtual org.eclipse.collections.impl.map.mutable.UnifiedMap.toImmutable:()Lorg/eclipse/collections/api/map/ImmutableMap;
12: putstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.WRAPPER_TO_PRIMATIVES:Lorg/eclipse/collections/api/map/ImmutableMap;
13: getstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.WRAPPER_TO_PRIMATIVES:Lorg/eclipse/collections/api/map/ImmutableMap;
invokeinterface org.eclipse.collections.api.map.ImmutableMap.castToMap:()Ljava/util/Map;
invokestatic org.eclipse.collections.impl.utility.MapIterate.reverseMapping:(Ljava/util/Map;)Lorg/eclipse/collections/api/map/MutableMap;
invokeinterface org.eclipse.collections.api.map.MutableMap.toImmutable:()Lorg/eclipse/collections/api/map/ImmutableMap;
putstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.PRIMATIVES_TO_WRAPPERS:Lorg/eclipse/collections/api/map/ImmutableMap;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new java.lang.AssertionError
dup
ldc "Suppress default constructor for noninstantiability"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/collections/impl/utility/internal/ReflectionHelper;
public static <T> java.lang.reflect.Constructor<T> getConstructor(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=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
3: aload 0
aload 1
invokestatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.searchForConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 instantiable Ljava/lang/Class<TT;>;
0 4 1 constructorParameterTypes [Ljava/lang/Class;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<TT;>;
MethodParameters:
Name Flags
instantiable
constructorParameterTypes
private static <T> java.lang.reflect.Constructor<T> searchForConstructor(java.lang.Class<T>, java.lang.Class<?>[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
astore 2
start local 2 1: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: java.lang.Class java.lang.Class[] java.lang.reflect.Constructor[] top int int java.lang.reflect.Constructor[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
aload 1
invokestatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.parameterTypesMatch:([Ljava/lang/Class;[Ljava/lang/Class;)Z
ifeq 5
4: aload 3
areturn
end local 3 5: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 instantiable Ljava/lang/Class<TT;>;
0 8 1 constructorParameterTypes [Ljava/lang/Class;
1 8 2 candidates [Ljava/lang/reflect/Constructor;
3 5 3 candidate Ljava/lang/reflect/Constructor<*>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<TT;>;
MethodParameters:
Name Flags
instantiable
constructorParameterTypes
public static boolean parameterTypesMatch(java.lang.Class<?>[], java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;[Ljava/lang/Class;)Z
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
arraylength
aload 1
arraylength
if_icmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 11
5: StackMap locals: int int
StackMap stack:
aload 0
iload 3
aaload
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 7
aload 1
iload 3
aaload
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 7
6: getstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.PRIMATIVES_TO_WRAPPERS:Lorg/eclipse/collections/api/map/ImmutableMap;
aload 0
iload 3
aaload
invokeinterface org.eclipse.collections.api.map.ImmutableMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
goto 8
7: StackMap locals:
StackMap stack:
aload 0
iload 3
aaload
8: StackMap locals:
StackMap stack: java.lang.Class
astore 4
start local 4 9: aload 4
aload 1
iload 3
aaload
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
istore 2
end local 4 10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 0
arraylength
if_icmpge 12
iload 2
ifne 5
end local 3 12: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 candidateParamTypes [Ljava/lang/Class;
0 13 1 desiredParameterTypes [Ljava/lang/Class;
3 13 2 match Z
4 12 3 i I
9 10 4 candidateType Ljava/lang/Class<*>;
Signature: ([Ljava/lang/Class<*>;[Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
candidateParamTypes
desiredParameterTypes
public static <T> T newInstance(java.lang.reflect.Constructor<T>, []);
descriptor: (Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 2
start local 2 3: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 constructor Ljava/lang/reflect/Constructor<TT;>;
0 4 1 constructorArguments [Ljava/lang/Object;
3 4 2 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 1 2 Class java.lang.InstantiationException
0 1 2 Class java.lang.reflect.InvocationTargetException
0 1 2 Class java.lang.IllegalAccessException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Constructor<TT;>;[Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
constructor
constructorArguments
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 0: aload 0
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([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: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 1
start local 1 3: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 aClass Ljava/lang/Class<TT;>;
3 4 1 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 1 2 Class java.lang.InstantiationException
0 1 2 Class java.lang.reflect.InvocationTargetException
0 1 2 Class java.lang.NoSuchMethodException
0 1 2 Class java.lang.IllegalAccessException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
aClass
public static boolean hasDefaultConstructor(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.eclipse.collections.impl.utility.internal.ReflectionHelper.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.reflect.Constructor.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
2: ireturn
end local 1 3: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 aClass Ljava/lang/Class<*>;
1 3 1 constructor Ljava/lang/reflect/Constructor<*>;
Exception table:
from to target type
0 2 3 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
aClass
}
SourceFile: "ReflectionHelper.java"